1

/action/logoutCodeigniter には、フォーム ヘルパーを使用すると CSRF/XSRF を防ぐことができる非常に便利なセキュリティ クラスがあることは知っていますが、CI url 構造は多くの関数をほとんど直接呼び出すため、追加なしでCSRF を防ぐにはどうすればよいですか? SEのような確認フォームはありますか?

私が持っていたアイデア:

  • ページ リファラーを確認する
  • 要求された MIME タイプを確認します (可能ですか?) ( などの画像 CSRF の場合<img src="http://example.com/action/logout" />)
  • すべてのアクションをフォームの一部にする (望ましくない)
  • ページ URL に CSRF トークンを含めます (醜く非常に悪いことです。ユーザーは、保存されているセッション ID やその他の個人情報に関係なく、URL をコピー アンド ペーストすることを好みます)。

/account/view/1/cyclone/アクションを実行せず、せいぜい帯域幅を浪費するだけなので、保護する必要はありません。

確かに、ウェブサイトの使用を自動化するためにコードを書くのが好きな人がいることは知っています。私はそれを尊重します。そのため、コードを介して、または自動的にアクションを実行するための API を作成します。

4

1 に答える 1

1

原則として、アクションを実行するフォーム リクエストでは、 を使用する必要がありますPOST。それ以外 GETは許可されています。POST を使用すると、間違いなく役立ちます。URL の醜い文字列の代わりに、フォームの非表示フィールドとしてトークンを含めることもできると思います。要求された MIME タイプのチェックに関しては、これは不可能です。print_r($_SERVER) を実行すると、基本的にユーザーから取得したすべてのものとサーバー側のものがあります。

于 2011-08-08T18:20:00.630 に答える