web-dev-qa-db-ja.com

Codeigniter 3エラーメッセージにアクセスできません

Codeigniter 3のset_rules関数に問題がある

ユーザーのメールを確認します:

$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email');

私が投稿するとこのエラーが発生します:

フィールド名Eメールに対応するエラーメッセージにアクセスできません。

21
user3546854

Codeigniter githubから:

XSSクリーニングに関するほとんど知られていないルールは、入力データではなく、出力にのみ適用することです。

自動およびグローバルXSSクリーニング機能(上記のXSSについての前のステップを参照)でその間違いを犯したため、今ではその実践を阻止するために努力しています 'xss_cleanも削除しています'正式にサポートされているフォーム検証ルールのリストから

通常、フォーム検証ライブラリは入力データを検証するため、「xss_clean」ルールは単にその中に属していません。

本当に本当にそのルールを適用する必要がある場合は、xss_clean()を通常の関数として含むセキュリティヘルパーもロードする必要があります。検証ルールとしても使用されます。

リンク: https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/installation/upgrade_300.rst#step-13-check-for-usage-of-the-xss_clean-フォーム検証ルール

そして、すべてにもかかわらず、本当に必要な場合は、application/config/autoload.phpにアクセスしてください:

$autoload['helper'] = array('security');

または、フォームの検証前

$this->load->helper('security');
56
AdrienXL

xss_cleanはフォーム検証の一部ではなくなりました。

xss_cleanは検証ではなくサニタイズを行うため、代替手段は使用しないことです。 xss_cleanはセキュリティヘルパーの一部です。必要な場合は、検証後に行います。

 $this->load->helper('security'); `
 $value = $this->input->post('email',TRUE); //where TRUE enables the xss filtering

また、config.phpファイルでグローバルxssフィルタリングを有効にできます

$config['global_xss_filtering'] = TRUE;

12
Gaurav Bhatra

他の人はそれをほのめかしていますが、誰も簡潔に言っていません。このエラーを修正する方法はxxs_clean検証ルールから。私はこの問題に自分で出会ったばかりで、ここで提供されたヒントのおかげで問題を修正することができました。

この:

 $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email');

これになる:

 $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
6
sean.boyer

Autoload.phpでsecurityヘルパーをロードしてください

$autoload['helper'] = array('security');

これ以上何もする必要はありません。

6
Kamlesh

使用する必要があります。

$this->load->helper('security'); 

また、config/autoload.phpで以下のコードを使用できますが、上記のコードを使用することをお勧めします。以来、Codeigniter liteの重量を維持します。

$autoload['helper'] = array('security');
0
Web7

ルールをグローバルにオーバーライドすると、次の方法でカスタムメッセージでルールが拡張されます。

$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|valid_email',
        array('xss_clean' => 'Error Message: your xss is not clean.')
);
0
Tpojka