問題タブ [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.
django - カスタム認証バックエンドを備えた Django、Csrf ミドルウェアは本当に必要ですか?
Django 1.1.1では、ユーザー名の代わりに、facebook 接続用のsocial-registrationや電子メール ベースの認証用のdjango-emailauthなど、いくつかの認証バックエンドを使用しています。
Csrf ミドルウェアが不可欠なセキュリティ対策であるかどうか、特に facebook 接続で問題が発生することがあることに興味があります。
私のプロジェクトはかなり単純です。各ユーザーには、入力できるプロファイルと、購入を行うための支払いを入力する購入ページがあります。これらのページはどちらも によって保護されてい@login_required
ます。
django - POST可能なAPIとDjangoのCSRFミドルウェアを持つ
フロントエンドのWebアクセス可能なコンポーネントとデスクトップクライアントからアクセスできるAPIの両方を備えたDjangoWebアプリがあります。ただし、新しいCSRFミドルウェアコンポーネントを使用すると、POSTされたデスクトップクライアントからのAPIリクエストは403を取得します。
なぜこれが起こっているのか理解していますが、セキュリティを損なうことなくこれを修正する適切な方法は何ですか?どういうわけか、それがAPIリクエストであり、DjangoがCSRFをチェックするべきではないこと、またはそれが悪い戦略であることをHTTPヘッダーで通知できますか?
編集 -
私が現在使用している方法は、デスクトップクライアントがヘッダーX-Requested-With:XMLHttpRequestを設定することです。これはちょっとハッキーですが、これがどのようにうまく処理されるかはわかりません。
django - Django - 公開ページで CSFR を実行するには? または、さらに良いことに、どのように使用する必要がありますか?
これを読んだ後: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it
これを登録しているページを使用している人物を信頼する場合を除いて、これを使用することは有効ではないという結論に達しました。これは正しいです?
次のステートメントのために、いつこれを使用しても安全なのか、私は本当に理解していないと思います:
これは、外部 URL をターゲットとする POST フォームに対しては実行しないでください。これにより、CSRF トークンが漏洩し、脆弱性につながる可能性があります。
紛らわしい理由は次のとおりです。私にとって「外部 URL」とは、私のドメインの一部ではないページのことです (つまり、私は www.example.com を所有しており、www.spamfoo.com に投稿するフォームを配置しています。これは明らかに当てはまりません)。他の人の Web サイトに投稿するフォームを生成するために Django を使用することはありませんが、公開フォーム (ログイン フォームなど) で CSRF 保護を使用できないというのはどうしてでしょうか?
html - JSP のどこに HIDDEN 変数を配置する必要がありますか
セッション追跡のために、JSP で隠し変数を使用する必要があります。これはコードです:
これを使用してリクエストトークンとセッショントークンを比較しているため、両方が等しい場合にのみそのリクエストを評価し、そうでない場合はエラーをスローします。
問題は、このコードを<form></form>
タグ内に配置すると、正常に機能することです。残念ながら、私のアプリケーションには<form>
タグのない JSP がいくつかあります (奇妙に聞こえるかもしれません!)。コードを動作させるには、どこにコードを配置すればよいですか?
<form>
タグなしで隠し変数を使用できませんか?
php - ビデオの埋め込みを許可するときに注意すべきXSS/CSRF攻撃(存在する場合)は何ですか?
私は、ユーザーが(YouTube APIを使用して)ビデオをアップロードできるWebサイトのプロジェクトを割り当てられましたが、さらに重要なことに(私にとって)、(多数のビデオサイト、YouTube、Vimeoから)ビデオ埋め込みコードを送信することも許可されます。などなど)。
ユーザーに動画の埋め込みを許可した経験がない:
クロスサイトスクリプティングやクロスサイトリクエストフォージェリ攻撃、特に動画の埋め込みを防ぐにはどうすればよいですか?注意すべき一般的な落とし穴は何ですか?
<object>
少なくとも、、、<param>
およびを除くすべてのタグを削除すると思います<embed>
。でも、これでは足りないと思いますよね?
また、編集
:属性
で既知のビデオドメイン名のみを許可することで、不正なフラッシュムービーがこれらの属性に埋め込まれるのを防ぐのに十分だと思い<embed src=
ます<param name="movie" value=
か?
/編集
重要な場合、環境は次のようになります。
- PHP/Zendフレームワーク
- MySQL
ボーナスポイント:
入力のフィルタリングに使用できるすべてのビデオサイトで有効な、ビデオ埋め込みコードの共通の最小ゴールデンルール/コードテンプレートはありますか?
python - Django の 404 エラーページで CSRF ミドルウェアが機能するようにします
Django プロジェクトの 404.html にログイン ボックスとキーワード検索ボックスを単独で配置したので、404 エラーが発生した場合、訪問者は他の部分にジャンプするためのより多くのオプションを取得できます。
ただし、CSRF ミドルウェアは、csrf トークンがレンダリングされていない 404 エラー ページでは機能しません。「django.middleware.csrf.CsrfViewMiddleware」をsettings.pyのMIDDLEWARE_CLASSESの最初に移動しようとしましたが、どちらも機能しませんでした。
誰でも解決策を知っていますか?
ajax - AJAXでZendFrameworkForm Hash(トークン)を使用する方法
Zend_Form_Element_Hashをフォームの複数チェックボックスフォームに含めました。チェックボックスがクリックされたときにAJAXリクエストを実行するようにjQueryを設定しました。このAJAXリクエストでトークンを渡します。最初のAJAXリクエストはうまく機能しますが、後続のリクエストは失敗します。
トークンが検証されると、セッションから削除される可能性があると思います(ホップ= 1)。
Zend Framework Hashでフォームを保護しながら、AJAXを使用してこれらのリクエストの一部を完了するための攻撃の計画は何ですか?
security - CSRFを防ぐために次のことを行うことの欠点を誰かが見ていますか?
次の方法でCSRFを完全に防ぎ、すべてのユーザーと互換性があるのではないかと思います。
ここにあります:
フォームには、次のような追加のパラメータを含めるだけですencrypted(user's userID + request time)
。サーバー側は復号化して、それが正しいuserIDであり、リクエスト時間がかなり最近のものであることを確認します。
誰かがユーザーのトラフィックを盗聴したり、暗号化を破ったりすることを除けば、これは完全に安全ですか?欠点はありますか?
java - リクエスト トークンとしての JSF ビュー ID
JSFフレームワークで使用されるビューIDには、リクエストトークンとして機能し、CSRFを無効にするという嬉しい副作用があることをどこかで読みました。これがプログラミングの観点から何もする必要がないことを意味するかどうか、誰か教えてください。プログラマーとして、JSF を使用すれば、CSRF について心配する必要はありませんか?
php - CSRF (クロスサイト リクエスト フォージェリ) 攻撃の例と PHP での防止
私は人々がこのように投票できるウェブサイトを持っています:
これにより、アイテム 25 に投票が行われます。これは、登録ユーザーのみが利用できるようにしたいと考えています。今では、誰かがウェブサイトで忙しくしていることを知り、誰かが次のようなリンクを提供します:
その後、投票は、彼がこれをしたくなくても、アイテムに彼のための場所になります.
OWASP の Web サイトの説明を読みましたが、よくわかりません。
これはCSRFの例ですか、どうすればこれを防ぐことができますか? 私が考えることができる最善のことは、ハッシュのようなものをリンクに追加することです. しかし、これはすべてのリンクの最後に何かを配置するのは非常にイライラします。これを行う他の方法はありませんか。
ウェブサイトは私にはかなり曖昧に見えるので、誰かがこれの他の例を教えてくれるかもしれません.