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

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

4
ASP.NETMVCの承認属性をオーバーライドする
ほとんどすべてのコントローラー(およびそれらのアクション)を承認する必要があるため、Authorize属性を適用したMVCコントローラー基本クラスがあります。 ただし、コントローラーと別のコントローラーのアクションを許可しないようにする必要があります。[Authorize(false)]か何かで飾れるようにしたかったのですが、これは利用できません。 何か案は?

4
暗号的に安全なトークンの生成
APIにアクセスするための32文字のトークンを生成するために、現在使用しているものは次のとおりです。 $token = md5(uniqid(mt_rand(), true)); この方法はシステムクロックに基づいているため、暗号的に安全ではないことを読みましたopenssl_random_pseudo_bytes。予測が難しいため、より良い解決策になります。 この場合、同等のコードはどのようになりますか? 私はこのようなことを推測しますが、これが正しいかどうかはわかりません... $token = md5(openssl_random_pseudo_bytes(32)); また、関数に渡す必要がある長さはどれくらいですか?
83 php  security  openssl  token 


5
JSON WebサービスはCSRF攻撃に対して脆弱ですか?
リクエストとレスポンスのコンテンツにJSONのみを使用する(つまり、フォームでエンコードされたペイロードを使用しない)Webサービスを構築しています。 次の場合、WebサービスはCSRF攻撃に対して脆弱ですか? どれでもPOSTトップレベルのJSONオブジェクトのない要求は、例えば、{"foo":"bar"}たとえば、400で拒否されますが、POST内容の要求は42これ拒否されるだろう。 任意POST以外のコンテンツ・タイプの要求application/json例えば400で拒否されますが、POSTコンテンツタイプの要求はapplication/x-www-form-urlencoded、したがって拒否されるであろう。 すべてのGETリクエストは安全であるため、サーバー側のデータは変更されません。 クライアントはセッションCookieを介して認証されます{"username":"user@example.com", "password":"my password"}。これは、JSONデータを使用したPOSTを介して正しいユーザー名とパスワードのペアを提供した後にWebサービスがクライアントに提供します。 補助的な質問:CSRFに対して脆弱なものはPUTありDELETEますか?ほとんどの(すべて?)ブラウザがHTMLフォームでこれらのメソッドを許可していないように思われるので、私は尋ねます。 編集:アイテム#4を追加しました。 編集:これまでのところ多くの良いコメントと回答がありますが、このWebサービスが脆弱な特定のCSRF攻撃を提供した人は誰もいません。
82 http  security  csrf 

9
クライアント側でHTMLをサニタイズ/書き換える
クロスドメインリクエストを介して読み込まれた外部リソースを表示し、「安全な」コンテンツのみを表示するようにする必要があります。 PrototypeのString#stripScriptsを使用して、スクリプトブロックを削除できます。しかし、onclickまたはなどのハンドラーonerrorはまだ存在しています。 少なくともできるライブラリはありますか スクリプトブロックを削除し、 DOMハンドラーを強制終了します。 ブラックリストにあるタグ(例:embedまたはobject)を削除します。 では、JavaScript関連のリンクや例はありますか?

7
パスワードのリセットを実装する方法は?
私はASP.NETでアプリケーションに取り組んでおり、自分でPassword Reset関数を作成したい場合、どのように関数を実装できるのか具体的に考えていました。 具体的には、次の質問があります。 解読しにくい一意のIDを生成する良い方法は何ですか? タイマーを付ける必要がありますか?もしそうなら、それはどのくらいの期間である必要がありますか? IPアドレスを記録する必要がありますか?それも重要ですか? 「パスワードのリセット」画面でどのような情報を要求すればよいですか?メールアドレスだけ?それとも、メールアドレスと彼らが「知っている」情報の一部ですか?(好きなチーム、子犬の名前など) 他に知っておく必要のある考慮事項はありますか? 注意:他の質問は、技術的な実装を完全に覆い隠しています。確かに、受け入れられた答えは、残酷な詳細を覆い隠します。この質問とその後の回答が厄介な詳細に入るといいのですが、この質問をもっと狭く表現することで、回答が「ふわふわ」ではなく「マチ」になることを願っています。 編集:SQLServerまたは回答へのASP.NETMVCリンクでそのようなテーブルがどのようにモデル化および処理されるかについても説明する回答をいただければ幸いです。

4
実稼働環境にデバッグシンボル(pdbファイル)をデプロイするリスクは何ですか?
例外strackトレースをログに記録するアプリケーションがあり、本番環境にデプロイするときに、これらのスタックトレースにファイル名と行番号を含める必要がありました。アセンブリを使用してデバッグシンボルを展開する方法を理解しましたが、問題を調査する過程でこの質問に遭遇しました。これは、本番環境にpdbファイルを含めることはお勧めできないことを意味します。受け入れられた回答へのコメントは、「...デバッグ情報は機密データを提供し、攻撃ベクトルになる可能性があります。アプリが何であるかによって異なります」と述べています。 では、どのような種類の機密データが公開される可能性がありますか?デバッグシンボルを使用してアプリケーションを危険にさらすにはどうすればよいですか?技術的な詳細に興味がありますが、私が本当に探しているのは、特定のアプリケーションおよび実稼働環境にデバッグシンボルを含めるリスクを評価するための実用的な方法です。言い換えれば、起こりうる最悪の事態は何でしょうか。 編集:フォローアップの質問/説明 したがって、これまでの全員の回答に基づくと、この質問は.NETアプリケーションでは少し単純化できるようです。MichaelMaddoxの回答にリンクされているJohnRobbinsブログのこのビットは、私に飛び出しました。 .NET PDBには、ソースファイル名とその行、およびローカル変数名の2つの情報のみが含まれています。他のすべての情報はすでに.NETメタデータに含まれているため、PDBファイルで同じ情報を複製する必要はありません。 私にとって、これは他の人がReflectorについて言っていることを繰り返しますが、本当の問題はアセンブリへのアクセスであるという意味です。それが決定されたら、PDBに関して行う唯一の決定は、ファイル名、行番号、およびローカル変数名を公開することを気にするかどうかです(最初にエンドユーザーにスタックトレースを表示していないと仮定します)。それとも私はこれを単純化しすぎましたか?

4
Node.jsアプリケーションの承認アプローチとデザインパターン[クローズ]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 2年前に閉鎖されました。 この質問を改善する 社内のエンタープライズソフトウェアプラットフォーム用に複数ページの管理インターフェイスを構築しています。さまざまなAPI、データベースクエリ、シェルスクリプトを結び付けるグルーロジックをたくさん考えてみてください。 認証には、node.js、Expressフレームワーク(jadeテンプレートを含む)、およびLDAPを使用します。 ノードアプリケーションでの承認のデザインパターンとベストプラクティスに関する情報を見つけるのに苦労しています。できれば、ユーザーがそのアプローチとそのケアと給餌に精通しているので、ロールベースのモデルを使用したいと思います。 私はnode.jsを初めて使用するので、モジュールや人気のあるブログ投稿をすでに見たことがあると思い込まないでください。情報が豊富で、どこを見ればいいのかわからない可能性があります。 あなたが提供することができるどんな情報にも前もって感謝します!

2
SAMLサービスプロバイダーになる方法
私の会社は現在、JavaWebアプリケーションを開発しています。いくつかのクライアントには内部SAMLサーバー(IDプロバイダー?)があり、それらとの統合を要求しています。それで最近、私はそれを読んで、OpenAMで遊んでいます。この約3日後、私はそれについて一般的な理解を持っていますが、私の知識にはまだいくつかのギャップがあります。私の希望は、誰かが私のためにこれを片付けることができることです。 これが、ユーザーがログインするワークフローを想像する方法です。 お客様のSAMLサーバーをhttps://their.samlserver.comとして定義しましょう。そのため、ユーザーは保護されたリソースを求めてWebアプリケーションにアクセスします。URLがhttp://my.app.com/somethingであるとしましょう。 したがって、私が正しければ、my.app.comはSAMLがサービスプロバイダーとして定義するものです。私たちのアプリケーションは、このユーザーがログインする必要があることを認識しています。次に、このようなページをユーザーに表示します... <script>JQuery Script to auto submit this form on ready</script> <form method="post" action="https://their.samlserver.com/Post/Servlet"> <input type="hidden" name="SAMLRequest" value="someBase64Data" /> <input type="submit" value="Submit" /> </form> そして、それsomeBase64Dataはbase64これのエンコードされたバージョンでなければなりません... <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="identifier_1" Version="2.0" IssueInstant="2004-12-05T09:21:59Z" AssertionConsumerServiceIndex="0"> <saml:Issuer>http://my.app.com</saml:Issuer> <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/> </samlp:AuthnRequest> だから私の最初のカップルの質問。 ID値は何であると想定されていますか? そして、なぜ私は自分自身を発行者として宣言することができますか? IDプロバイダーは私について知っていますか?多分これは私がOpenAMで見ている信頼の輪です。そして、それが私について知っている場合、それはどのように私について知っており、何を知る必要がありますか? したがって、ユーザーがそのページを転送した後、IDPhttps : //their.samlserver.comによって提供されるページに移動します。彼らはそのページで認証し、IDPは認証を検証してユーザーを検索するのは魔法のようです。認証が成功した後、IDPはここで<samlp:Response>定義されたものを送り返します。 さらにいくつか質問があります。 まず、<samlp:Response>Webアプリケーションに戻って確認できるようにするにはどうすればよいですか? そして、それが成功したことを検証するために、その応答で何を探す必要がありますか?失敗はどのように見えますか? 現在、ユーザーを識別するために電子メールアドレス(LDAP)を使用しているため、おそらく応答からそれを取得して、現在と同じように使用します。その応答で私が注意しなければならない他の何か? …

1
CRLおよびOSCPチェックをiOSで機能させるにはどうすればよいですか?
iOSでCRLを機能させることができません。2つのテストケースを作成しました。CAが発行した有効な証明書を持っています。CAによって発行された有効な別の証明書がありますが、CAはその証明書をCRLに追加しました。 次に、CRLチェックを有効にし、それが成功することを要求する失効ポリシーを設定します。 func crlValidationTest(trustedCert: SecCertificate, certToVerify: SecCertificate) -> Bool { let basicPolicy = SecPolicyCreateBasicX509() let crlPolicy = SecPolicyCreateRevocation(kSecRevocationOCSPMethod | kSecRevocationCRLMethod | kSecRevocationRequirePositiveResponse)! var trust: SecTrust? SecTrustCreateWithCertificates(NSArray(object: certToVerify), NSArray(objects: basicPolicy, crlPolicy), &trust) SecTrustSetAnchorCertificates(trust!, NSArray(object: trustedCert)) SecTrustSetNetworkFetchAllowed(trust!, true) var trustResult = SecTrustResultType.invalid guard SecTrustEvaluate(trust!, &trustResult) == errSecSuccess else { return false } …

3
プラグイン以外のWebベースの暗号化ウォレットを安全と見なすことはできますか?
プラグインをインストールしなくても、Webブラウザー内でIFRAMEや類似のテクノロジーで機能する暗号化ウォレットがたくさんあります。 https://authereum.org https://www.portis.io https://tor.us https://fortmatic.com しかし、それらはフィッシングDapp攻撃から保護されていますか?DappがあなたをだましてETH送信の実際の量やその他の方法を隠したい場合は、Webブラウザー内でウォレットUIを変更しますか?

3
誰かがハードコードされた「AWS-cognito-identity-poolID」を使って私のs3にハッキングできますか?
まず、クライアント側のJSファイルにawsの「accessKey」と「securityKey」をハードコードしましたが、非常に安全ではなかったので、「aws-cognito」について読み、次の方法で新しいJSを実装しました。 それでも、誰かがハードコーディングされた「AWS-cognito-identity-poolID」を使用して私のs3にハッキングできる1つのことに混乱していますか?または、他のセキュリティ対策を講じる必要がありますか? ありがとう、 ジェイキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.