一重引用符 ( ' ) や二重引用符 ( " ) などの文字を送信し、フォームの送信後に値を保持すると (検証の失敗などにより)、' のようなフォーム値を取得するという問題に直面していました。と "
私は多くのことを試しました-
$this->input->post("field", true)
の代わりに$_POST
フォーム値にアクセスする- 構成からの XSS フィルタリングの有効化、
- 使用して
$this->security->xss_clean($data);
しかし、何も役に立ちませんでした。最後に、system\helpers\form_helper.php に移動し、177 行目の関数 form_input を次のように変更しました -
前へ:$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
後:$defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => html_entity_decode($value, ENT_QUOTES, 'UTF-8'));
これにより、これまでのところ中断することなく問題が解決されました。
これが目的を果たす正しい方法であるかどうかを知りたいだけですか?