問題タブ [csrf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 偽造防止トークンソルトの用途は何ですか?
ASP.NET MVC 1.0 には、クロス サイト リクエスト フォージェリのセキュリティ問題を処理するための新しい機能があります。
新しいフォームがレンダリングされるたびに、html フォームで生成されたトークンが変化し続けることがわかりました。
これらのトークンがどのように生成されるか知りたいですか? また、何らかのソフトウェアを使用してこのサイトをスキャンすると、別のセキュリティ上の問題が報告されます: セッションが修正されました。なんで?トークンが変更されているため、この問題はどのように発生するのでしょうか?
もう 1 つの関数があります。それは の「salt」ですがantiForgeryToken
、トークンの生成に「salt」を使用しなくても、これが何に使用されるかはよくわかっています。トークンは常に変化します。関数?
ajax - POST とカスタム Content-Type を要求すると CSRF が防止されますか?
私のチームは、すべての状態変更に対して WCF サービスへの AJAX 呼び出しを使用するサイトを構築しています。これらのサービスは、メソッドが POST で Content-Type が「application/json」の場合にのみリクエストを受け入れます。私たちのサイトに XSS 脆弱性がないと仮定すると、これは WCF サービスの CSRF に対する十分な保護になりますか? 攻撃者がカスタムの Content-Type ヘッダーを使用してクロスサイト POST を作成することは可能ですか?
[編集]明らかに、悪意のあるサードパーティのサイトが私のサイトへの HTTP POST リクエストを作成する方法はいくつかあります。ただし、私が知る限り、これらの方法では Content-Type ヘッダーを変更することはできません。XHR と Flash の両方でヘッダーを設定できますが、サイト間の制限が厳しいです。
security - リファラーをチェックするだけで、CSRF 攻撃から保護できますか?
リファラーをチェックするだけで、クロス サイト リクエスト フォージェリ攻撃から保護できますか? リファラーがスプーフィングされる可能性があることは知っていますが、攻撃者がクライアントに対してそれを行う方法はありますか? トークンが標準であることは知っていますが、これは機能しますか?
django - DjangoのCSRFミドルウェアからの大量の誤検知?
Djangoの寄稿者であるCSRFミドルウェアから大量の誤検知が発生しています。サイトの通常の使用から、CSRFが偽造攻撃の疑いとしてリクエストのブロックを開始する場合が多くあります。
他の誰かがこのような問題を抱えていますか?私はDjangoのSVNブランチを使用しているので、最新バージョンのCSRFミドルウェアを使用しています。これらの問題をどのように診断できますか?
更新:本番サイトと開発サイトでこれらの誤検知が発生しています。それらは散発的に発生します。私のサイトはサブドメインを使用しており、異なるサーバーで実行されているがサブドメインで区切られているサイトの異なる開発/本番バージョンがあります。CSRF攻撃の警告をトリガーするものは何ですか?開発Cookieが本番サイトに送信されたときですか?同じログインユーザーのサブドメイン間を移動すると問題が発生しますか?
security - セッションの保護
SO が伝統的にこのように使用されていないことは知っています (または、そうかもしれません) が、私は webapp のセキュリティについて学んでおり、SO の専門家からこの記事についての意見を聞くのは良いことであり、励みになると考えていました (私は今それを読んで、それはセッションセキュリティにあります)。
http://carsonified.com/blog/dev/how-to-create-bulletproof-sessions/
たぶん、何らかの議論をして、著者が誤って述べたり忘れたりしたこと、およびどのようなより良いプラクティスがあるかを指摘することができますか?
たとえば、SQL インジェクションなどの別のセキュリティ トピックに関しては、多くの人が mysql_real_escape_strings などを推奨していますが、専門家は、準備済みステートメントに勝るものはないと言うでしょう。コメントを見ると、この記事には問題があるように見えるので、彼の内容がどこまで良いのか悪いのか気になります。
php - PHP、csrf、xsrfでフォームの再生/中間者攻撃を防ぐ方法
私はWebフォームを持っており、PHPを使用しています。フォームを操作できることは承知しています(リプレイ攻撃または中間者攻撃と呼ばれると思います)。そこで、信頼性トークンを隠しフィールドとして使用したいと思います。
私が知っている脅威の可能性は次のとおりです。
- 攻撃者が正当なユーザーのフォームを乗っ取る(これは中間者攻撃だと私は信じています)
- 正当なユーザー自身が攻撃者です。彼はフォームを取得し、トークンを読み取りますが、それを使用して危険なデータを送信します(これはリプレイ攻撃だと思います)
質問に入る前に、これまでに言ったことが間違っている場合は訂正してください。私の理解に欠陥がある可能性があります。
今質問に:
- このトークンを生成して、トークンのないフォームが拒否されるようにするためのベストプラクティスは何ですか(たとえば、ソルト?)。
- トークンが再生されていないことを確認するために、人々は何をしますか。
コメントに基づく新しい小さな質問:
- セッションハイジャックは中間者攻撃と同じですか?
php - CakePHPとCSRF
私はCakePHPを初めて使用し、クロスサイトリクエストフォージェリからフォームを保護する方法、つまりフォームにナンスを追加する方法を考えています。設定ファイルにソルトを設定しました。
zend-framework - Zend Frameworkを使用して、クロスサイトリクエストフォージェリからユーザーを保護するにはどうすればよいですか?
私のプログラムはZendFrameworkを使用しており、Zend_Form_Element_Hashを使用してユーザーをCSRFから保護したいと考えていました。しかし、それはうまくいかないようです。
たとえば、ログアウトフォームのコードは次のとおりです。
コントローラ用の認証プラグインでは、
そして私のレイアウトでは
わかった。しかし、それは機能しません。フォームの送信ボタンをクリックすると、ページがリロードされますが、IDはまだ存在します。
私が気付いたように、Zend_Form_Element_Hashは、フォームがユーザーからのハッシュを作成し、セッションからのハッシュ(最後に生成されたハッシュ)と比較するたびに、新しいハッシュ値を生成します。とても不思議です。たとえば、アプリケーションでR00_Form_Exitを1つだけ作成し、レジストリに保存してそこからエコーしようとしても、サイトのページを「新しいタブで」開くと、そのようなcsrfで保護されたフォームがすべて機能しなくなります。
では、どうすれば保護できますか?
django - django 1.0 csrf保護で例外を作成する方法はありますか?
Djangoの開発バージョンにあることは知っていますが、 Django1.0にはありません。コードを確認しましたが、このような例外は確実に組み込まれていません。POSTリクエストを返す必要があるサードパーティのフラッシュアプリにcsrfミドルウェアトークンを追加できないため、この機能が必要です。 djangoに。:(
誰かアイデアはありますか?