4

CodeIgniter 2.x には組み込みの CSRF 保護があることを読んでください。ドキュメントを読んだところ、CSRFに関連するものは何も見つかりませんでした。ファイルに設定するオプションだけで、それだけTRUEですconfig.php。ただし、私のシステムでform_helperは、CodeIgniter の CSRF 保護を自動的に組み込むこれを使用せず、代わりにネイティブ<form>の HTML を使用しています。

私の懸念は、CodeIgniter の CSRF を実装するために何かをする必要があるか、またはオプションを設定するだけTRUEで十分ですか?

4

1 に答える 1

2

CodeigniterでCRSFを有効にするには、次のことを行う必要があります。

  1. 設定ファイルでオプションを「TRUE」に設定します

  2. すべてのフォームは、 form_open ()ヘルパー関数を使用する必要があります。これにより、「非表示」のCSRFトークンが自動的に生成され、フォームに含まれます。その後、Codeigniterは、セキュリティ機能の一部として、フォームの送信ごとにこのトークンを自動的にチェックします。CSRFエラーを検出すると、401エラーが自動的にスローされます。

他に何もする必要はありません。

編集:form_open()を使用していないことを読み直しました。CSRFトークンを自分でフォームに手動で挿入することは可能かもしれませんが、必要以上に手間がかかります。すべてのフォームをform_openを使用するように変換するだけで、見た目は機能しません。

(はい、これはCIで文書化されていない数少ない機能の1つです。そのため、答えが見つからなかった理由を理解しています。私もしばらく時間がかかりました)

于 2012-10-07T02:42:20.003 に答える