-1

e コマース サイトの CSRF を探しています。フォームにトークンベースのアプローチを実装しました。

私のサイトのバスケット ページに、アドレス ページにリンクするだけのチェックアウトリンクがあります。アドレス ページが表示されると、ユーザーがログインしていて、バスケットにアイテムがあることを確認するために、さまざまなチェックが行われます。次に、セッションに保存されている user_id に基づいて、ユーザーの既存のアドレスを引き出します。

私の質問は、チェックアウトリンクに脆弱性はありますか? いかなる方法でもデータを変更することはありません。

4

2 に答える 2

1

リクエストからのみデータを取得できる場合は、CSRF から安全です。

CSRF は、ユーザーをだまして何かを変更する要求 (コメントの投稿 (スパムの可能性があります!)、何かの購入、何かへの投票、アカウントの詳細の変更など) を行わせる攻撃です。

于 2013-06-03T21:14:30.943 に答える
1

CSRF は、「脆弱」または「脆弱ではない」タイプの脆弱性ではありません。「何かが悪用される可能性はありますか?」というより。詳しく説明しましょう。

CSRF の背後にある全体的な考え方は、ユーザーに (利用可能なあらゆる手段を介して) プログラムで (できればユーザーの同意なしに) 自分自身として変更を実行させることです。これを行う方法は、次のいずれかの重要なリクエストがある、攻撃しようとしているサイトの一部を見つけることです。

  • パラメータを使用して完全に完了しGETます (この時点でimgタグを使用して、ユーザーのブラウザをだましてトリガーさせることができます)
  • リクエストに一意の CSRF トークンがありませんが、この場合、次のいずれかが必要になります。
    • AJAX を利用してリクエストを実行するための XSS 脆弱性を持つサイトのページ
    • サーバーの構成ミスにより、CORS ヘッダーが一括送信されました。これはまれです。

CSRF 自体はめったにありません (ほとんどの Web サイトPOSTはさまざまなことに使用します。イメージ タグに頼らなければならないことはめったにありません)。より可能性の高い組み合わせは CSRF+XSS ですが、亜種が見つかります。

CSRF を防御するための鍵は、「私のリンクがハッキングされる可能性がある!!!」ということではありません。さらに、使用してリプレイできるリクエストがべき等であることGET(つまり、状態の変更を引き起こさないこと) を確認し、それ以外は自動リプレイを防ぐためにワンタイム トークンを使用するようにしてください。

于 2013-06-03T21:22:49.637 に答える