タグ付けされた質問 「security」

アプリケーションのセキュリティとソフトウェアに対する攻撃に関するトピック。このタグを単独で使用しないでください。あいまいになる可能性があります。質問が特定のプログラミングの問題に関するものでない場合は、代わりにInformation Security SEで質問することを検討してください:https://security.stackexchange.com

3
RESTful Webサービスを保護する方法
安全なRESTful Webサービスを実装する必要があります。私はすでにGoogleを使用していくつかの調査を行いましたが、行き詰まっています。 オプション: TLS(HTTPS)+ HTTPベーシック(pc1oad1etter) HTTPダイジェスト two-legged OAuth Cookieベースのアプローチ クライアント証明書(Tom Ritterおよびここ) HMACと制限付きライフタイムを使用した署名付きリクエスト 検討すべきオプションは他にありますか?OAuthの場合、どのバージョンですか?それも重要ですか?これまで読んだことから、署名なしのベアラートークンを使用したOAuth 2.0は安全ではないようです。 RESTベースの認証に関する別の非常に興味深い記事を見つけました。 REST APIを保護する...正しい方法

14
C ++で機密性の高い文字列を不明瞭にする手法
C ++アプリケーションに機密情報(秘密にしたい対称暗号化キー)を保存する必要があります。単純なアプローチはこれを行うことです: std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess"; ただし、stringsプロセス(またはバイナリアプリから文字列を抽出するその他のプロセス)を介してアプリケーションを実行すると、上記の文字列が表示されます。 そのような機密データを不明瞭にするためにどのようなテクニックを使用すべきですか? 編集: もちろん、皆さんのほとんどが「実行可能ファイルをリバースエンジニアリングできる」と言っています -もちろんです!これは私のうんざりなので、ここで少し怒らせます。 このサイトのセキュリティ関連のすべての質問の99%(大丈夫なので、少し誇張しているかもしれません)が「完全に安全なプログラムを作成する方法はありません」という急流で回答されているのはなぜですか?これは役に立ちません回答!セキュリティは、一方の端で完全なユーザビリティとセキュリティなしの間の、もう一方の端で完全なセキュリティだがユーザビリティなしの間のスライディングスケールです。 重要なのは、何をしようとしているのか、ソフトウェアが実行される環境に応じて、スライディングスケールでの位置を選択することです。軍事施設用のアプリではなく、自宅のPC用のアプリを作成しています。信頼されていないネットワーク全体で、既知の暗号化キーを使用してデータを暗号化する必要があります。これらの場合、「あいまいさによるセキュリティ」でおそらく十分です。確かに、十分な時間、エネルギー、スキルを備えた誰かがバイナリをリバースエンジニアリングしてパスワードを見つけることができますが、どうでしょうか。私は気にしません: 一流の安全なシステムを実装するのにかかる時間は、クラックされたバージョンによる販売の損失よりも高価です(私が実際にこれを販売しているわけではありませんが、あなたの言うとおりです)。新しいプログラマーの間でのプログラミングにおけるこの青空の「可能な限り絶対的な最善の方法」の傾向は、控えめに言っても馬鹿げています。 この質問に答えてくれてありがとう-彼らは最も役に立ちました。残念ながら、私は1つの回答しか受け入れることができませんが、役立つ回答はすべて賛成票を投じました。

2
ユーザー定義のテーブルタイプでEXECUTE権限が拒否されましたか?
SQL Server2008のユーザー定義テーブルタイプについて質問があります。 ASP.NETアプリケーションの1つが必要な場合は、SQL Server 2008で独自のテーブルタイプを定義して、それらをストアドプロシージャのパラメーターとして使用します(ASP.NETアプリケーションでsqlコマンドを実行する場合、DataTableオブジェクトをストアドプロシージャのパラメーターとして渡します。例についてはこちらをご覧ください) 問題は、ASP.NETからSQLコマンド(ストアドプロシージャの実行)を実行すると、次のエラーが発生することです。 オブジェクト 'ourTableType'、データベース 'ourDatabase'、スキーマ 'ourSchema'に対するEXECUTE権限が拒否されました。 どうしてこんなことに?ユーザー定義のテーブルタイプに権限を設定する必要があるのはなぜですか?それを使用するストアドプロシージャだけに権限を設定するだけでは不十分なのはなぜですか?そして、私たちは、なぜ何もありませんどのように関係なく、それを設定する必要がある場合はEXECUTEプロパティウィンドウの何で設定するアクセス権の種類は、(私は見ることができControl、References、Take Ownership、View Definition)? またControl、プロパティウィンドウでアクセス許可をに設定すると問題が解決し、ストアドプロシージャが問題なく実行されることもわかりません。


5
モバイルアプリに適したOAuth2.0フローは何ですか
OAuth2.0を使用してモバイルアプリのWebAPIに委任された承認を実装しようとしています。仕様によると、暗黙的な付与フローは更新トークンをサポートしていません。つまり、アクセストークンが特定の期間付与されると、トークンの有効期限が切れるか、トークンが取り消されたときに、ユーザーはアプリに再度アクセス許可を付与する必要があります。 仕様に記載されているように、これはブラウザで実行されているJavaScriptコードにとって良いシナリオだと思います。ユーザーがトークンを取得するためにアプリに権限を付与する必要がある時間を最小限に抑えようとしているので、認証コードフローは更新トークンをサポートしているため、適切なオプションのようです。 ただし、このフローは、リダイレクトを実行するためにWebブラウザに大きく依存しているようです。埋め込みWebブラウザーが使用されている場合、このフローがモバイルアプリにとって依然として適切なオプションであるかどうか疑問に思います。それとも、暗黙のフローを使用する必要がありますか?

5
ドメイン資格情報を検証する方法は?
ドメインコントローラーに対して一連の資格情報を検証したいと思います。例えば: Username: STACKOVERFLOW\joel Password: splotchy 方法1.偽装を使用してActiveDirectoryをクエリする 多くの人が、ActiveDirectoryに何かを照会することを提案しています。例外がスローされた場合は、資格情報が無効であることがわかります-このstackoverflowの質問で提案されているように。 ただし、このアプローチにはいくつかの重大な欠点があります。 ドメインアカウントを認証するだけでなく、暗黙的な承認チェックも実行します。つまり、偽装トークンを使用してADからプロパティを読み取っています。それ以外の場合は有効なアカウントにADから読み取る権限がない場合はどうなりますか?デフォルトでは、すべてのユーザーが読み取りアクセス権を持っていますが、ドメインポリシーを設定して、制限されたアカウント(またはグループ)のアクセス許可を無効にすることができます。 ADに対するバインドには重大なオーバーヘッドがあり、ADスキーマキャッシュをクライアントでロードする必要があります(DirectoryServicesが使用するADSIプロバイダーのADSIキャッシュ)。これはネットワークとADサーバーの両方であり、リソースを消費します。また、ユーザーアカウントの認証などの単純な操作にはコストがかかりすぎます。 例外ではない場合の例外の失敗に依存しており、それが無効なユーザー名とパスワードを意味すると想定しています。その他の問題(ネットワーク障害、AD接続障害、メモリ割り当てエラーなど)は、認証障害として誤って解釈されます。 方法2.LogonUser Win32 API 他の人が使用して示唆されているLogonUser()API関数を。これは良さそうに聞こえますが、残念ながら、呼び出し元のユーザーは、通常、オペレーティングシステム自体にのみ付与されるアクセス許可を必要とする場合があります。 LogonUserを呼び出すプロセスには、SE_TCB_NAME特権が必要です。呼び出しプロセスにこの特権がない場合、LogonUserは失敗し、GetLastErrorはERROR_PRIVILEGE_NOT_HELDを返します。 場合によっては、LogonUserを呼び出すプロセスで、SE_CHANGE_NOTIFY_NAME特権も有効にする必要があります。それ以外の場合、LogonUserは失敗し、GetLastErrorはERROR_ACCESS_DENIEDを返します。この特権は、ローカルシステムアカウントまたはadministratorsグループのメンバーであるアカウントには必要ありません。デフォルトでは、SE_CHANGE_NOTIFY_NAMEはすべてのユーザーに対して有効になっていますが、一部の管理者はすべてのユーザーに対して無効にすることができます。 「配っオペレーティングシステムの一部として、 Microsoftがで指摘するように- 」権限は行き当たりばったりやりたいものではありませんナレッジベースの記事: ... LogonUserを呼び出すプロセスには、SE_TCB_NAME特権が必要です(ユーザーマネージャーでは、これは「オペレーティングシステムの一部として機能する」権限です)。SE_TCB_NAME特権は非常に強力であり、 資格情報を検証する必要があるアプリケーションを実行できるようにするためだけに、任意のユーザーに付与しないでください。 さらに、LogonUser()空白のパスワードが指定されている場合、への呼び出しは失敗します。 ドメイン資格情報のセットを認証する適切な方法は何ですか? 私は起こるのマネージコードから呼び出すことが、これは、AA、一般的なWindowsの質問です。お客様には.NETFramework2.0がインストールされていると想定できます。

13
Chrome48以降のWebセキュリティを無効にする
--disable-web-security旗に問題があります。WindowsのChrome48およびChrome49ベータ版では機能しません。 私はすべてのインスタンスを強制終了し、最初にフラグを付けてChromeを再起動して実行し、別のマシンも試しました。ベータ版では、警告ポップアップ(「サポートされていないフラグを使用しています。」)が表示されますが、CORSは引き続き適用されます。パブリックバージョンはフラグを完全に無視しているようです。 それについてのニュースや人々の報告はないようですので、それは地域の問題かもしれません。ヘルプまたは関連情報に感謝します。

11
なぜ塩は辞書攻撃を「不可能」にするのですか?
更新:ソルトとは何か、レインボーテーブルとは何か、辞書攻撃とは何か、ソルトの目的は何かを尋ねていないことに注意してください。私は質問しています:ユーザーのソルトとハッシュを知っているなら、彼らのパスワードを計算するのはとても簡単ではありませんか? 私はプロセスを理解しており、いくつかのプロジェクトで自分で実装しています。 s = random salt storedPassword = sha1(password + s) 保存するデータベース: username | hashed_password | salt 私が見たソルティングのすべての実装は、パスワードの最後または最初にソルトを追加します。 hashed_Password = sha1(s + password ) hashed_Password = sha1(password + s) したがって、彼の塩の価値があるハッカーからの辞書攻撃(ha ha)は、上記の一般的な組み合わせで保存されている塩に対して各キーワードを実行するだけです。 確かに、上記の実装は、根本的な問題を実際に解決することなく、ハッカーに別のステップを追加するだけですか?この問題を回避するための代替手段はありますか、それとも私は問題を誤解していますか? 私が考えることができる唯一のことは、ソルトとパスワードをランダムなパターンで組み合わせたり、他のユーザーフィールドをハッシュプロセスに追加したりする秘密のブレンドアルゴリズムを使用することです。実りあることを証明するための辞書攻撃のためにそれらを。(コメントで指摘されているように、更新します。ハッカーがすべての情報にアクセスできると想定するのが最善であるため、これはおそらく最善ではありません)。 ハッカーがパスワードとハッシュのリストを使用してユーザーデータベースをハッキングすることを提案する方法の例を挙げましょう。 ハッキングされたデータベースのデータ: RawPassword (not stored) | Hashed | Salt -------------------------------------------------------- letmein WEFLS... WEFOJFOFO... 一般的なパスワード辞書: Common Password -------------- …

10
DDoS保護を有効にする方法は?
DDoS(分散型サービス拒否攻撃)は通常、サーバーレベルでブロックされますか? PHPレベルでそれをブロックする方法、または少なくともそれを減らす方法はありますか? そうでない場合、DDoS攻撃を阻止するための最速かつ最も一般的な方法は何ですか?

3
「badidea」または「thisisunsafe」を使用してChrome証明書/ HSTSエラーをバイパスすることは、現在のサイトにのみ適用されますか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、スタックオーバーフローのトピックになります。 2年前に閉鎖されました。 この質問を改善する Webアプリケーションを開発する場合、Chromeで特定のサイトにアクセスできず、証明書/ HSTSエラーがスローされることがあります。Chromeウィンドウにbadidea(最近thisisunsafe)入力すると、Chromeに証明書の検証をスキップするように指示されることがわかりました。 このソリューションは特定のサイトでのみ機能しますか、それともこのキーワードを使用した後、Chromeはすべてのサイトの証明書/ HSTSエラーを無視しますか?


3
WebSocketに同一生成元ポリシーがないのはなぜですか?なぜws:// localhostに接続できるのですか?
アプリケーションのプロセス間通信にWebSocketを使用したい(Daemon <-> WebGUIおよびDaemon <-> FatClientなど)。テスト中に、websocket.org(http://www.websocket.org/echo.html)のJavaScript WebSocketクライアントを介してローカルで実行されているWebソケットサーバー(ws:// localhost:1234)に接続しようとしました。 私の質問は今です: なぜこれが可能ですか?ブラウザ(ここでは:LinuxのFF29)にクロスオリジンポリシーが実装されていませんか? websocket.orgが悪かった場合、ローカルWSサーバーと通信して、ローカルホストから受信したすべてのメッセージを他のサーバーにリダイレクトしようとする可能性があるため、私は尋ねています。 ローカルWebSocketサーバーブラウザ邪悪なWebサーバー ws:// localhost:1234、http://evil.tld | | | | | ------ [GET /] ---------> | | | <----- [HTML + EvilJS] ---- | | <------ [connect ws:// ..] ---- | | | <---- [いくつかのコミュニケーション]-> | | | | ---- [邪悪な前進] ----> | …

3
文字列をエスケープするとはどういう意味ですか?
私が読んでいたのは、SQLクエリに入る前に$ _SESSION ['username']をエスケープする必要がありますか?そしてそれは「あなたはその起源に関係なく、あなたがSQLクエリに渡すすべての文字列をエスケープする必要がある」と言った。今、私はこのようなものが本当に基本的であることを知っています。グーグル検索は2万件以上の結果をもたらしました。Stackoverflowだけでも20ページの結果が得られましたが、文字列のエスケープとは何か、またはその方法を実際に説明している人は誰もいません。想定されているだけです。手伝って頂けますか?いつものようにPHPでウェブアプリを作っているので学びたいです。 :私は見てきました 挿入エスケープ文字、Javaでのすべてのエスケープ文字は何ですか?、 addcslashes()で文字列エスケープカント、 エスケープ文字を、 mysql_real_escape_stringのないものを()本当に?、phpの文字列から二重引用符をエスケープするには どうすればよいですか?、 MySQL_real_escape_stringはスラッシュを追加していませんか?、 phpの文字列からエスケープシーケンスを削除します。続行できますが、要点はわかります。これは怠惰ではありません。
84 php  mysql  security  escaping 

12
間違ったパスワードをチェックするのに、正しいパスワードをチェックするよりも時間がかかるのはなぜですか?
この質問はいつも私を悩ませてきました。 Linuxでは、パスワードの入力を求められたときに、入力が正しい場合は、ほとんど遅延なくすぐにチェックされます。ただし、その一方で、間違ったパスワードを入力すると、確認に時間がかかります。何故ですか? これは、これまでに試したすべてのLinuxディストリビューションで観察されました。

6
人間のためのJAAS
JAASを理解するのに苦労しています。それはすべて、本来あるべきよりも複雑に思えます(特にSunのチュートリアル)。Struts + Spring + Hibernateとカスタムユーザーリポジトリに基づくJavaアプリケーションでセキュリティ(認証+承認)を実装する方法についての簡単なチュートリアルまたは例が必要です。ACEGIを使用して実装できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.