0

CIユーザーガイドには、「以下は、使用可能なすべての準備機能のリストです」と記載されています。

xss_clean = XSSフィルタリング関数を介してデータを実行します.....

私のコードのコメントには私の質問があります。読んでください。

注:xssをグローバルに有効にすることに関心はありません!!!

前もって感謝します

$this->form_validation->set_rules('select_language', 'Language', 'trim|required|xss_clean');

//Has this been cleaned above while validating and ready to be used or ...
$language = $this->input->post('text_fullname');

//... do I have to add true to run the data through the XSS filtering again myslef?
$language = $this->input->post('text_fullname', true);
4

2 に答える 2

3

フォームの検証を実際に実行するまで、投稿データはフィルタリングされません。

$this->form_validation->set_rules(
    'select_language',
    'Language',
    'trim|required|xss_clean'
);

// Unaltered $_POST input
$this->input->post('select_language');

$this->form_validation->run();

// Trimmed and xss_cleaned
$this->input->post('select_language');

余談ですが、私の意見では、xssフィルタリングは、入力ではなく出力で、実際に重要な場所で使用する方が理にかなっています。たとえば、将来のリリースでxssフィルターが改善された場合、それを利用したいと思いますか?入力のみをフィルタリングする場合、出力でxss_clean関数を再度実行しないと不可能であり、フォーム検証ルールとして使用する目的が無効になります。

于 2012-12-07T15:08:38.117 に答える
0

他の答えが示唆しているように、最初にフォーム検証を実行する必要がありますが、!

$this->input->post('text_fullname')検証ルールを設定しているので、クリーンアップされませselect_languageん。text_fullname

于 2012-12-07T15:11:56.500 に答える