2017-09-30 7 views
0

私は誰か他の人がビルドするコードで作業しています。私は設定でxssアクティブを参照してください:Codeigniter 3 - XSSフィルタリング

global_xss_filtering = TRUE 

私はまた、これは非難される参照してください。私はまた、入力クラスで見つかった:アクティベートは、私は、それがXSSフィルタリングを適用する入力 - >ポストにXSSをオフにした場合でも、設定で「global_xss_filtering」場合、これが意味

$this->_enable_xss = (config_item('global_xss_filtering') === TRUE); 
is_bool($xss_clean) OR $xss_clean = $this->_enable_xss; 

これは私が私の質問は以下の通り設定でそれをオフにし、

$this->securit->xss_clean($this->input->post()) 

を使用しなければならないことを意味:

  1. 何XSSのの$ this - >入力 - >ポストを通じて適用されない場合には( 'variable')、これは$ _POSTではなく、これを使うことの他の利点ですか?

  2. Codeigniter 3でXSSフィルタリングを行う正しい方法はどれですか?

ありがとうございます。

答えて

1

Codeigniter 3でXSSフィルタリングを行う正しい方法はどれですか?

開発コミュニティの現在のコンセンサスは、入力の代わりに出力でXSSフィルタリングを実行する必要があるようです。しかし、入力フィルターと出力フィルターの両方に強力な議論と支持者があります。

大規模でやや複雑なトピックです。読んでそのすべてを理解した後、あなたは

https://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/cross-site-malicious-content.html

https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#Introduction

https://paragonie.com/blog/2015/06/preventing-xss-vulnerabilities-in-php-everything-you-need-know

で知りたいと思ったよりも多くのを見つけ、あなたはXSSを防ぐことがあります入力と出力の両方に多くの思考と作業が必要置く。

CodeigniterのXSS機能を使用せず、代わりにHTML Purifierのようなものを使用することをお勧めします。

XSSが$ this-> input-> post( '変数')を通じて適用されていない場合、これは$ _POSTではなく、これを使用する利点ですか?

$this->input->post('variable')を使用することの主な利点は、インデックス( '変数が ")$_POSTに存在することを確認すること。直接あなたが本当に配列は、そのインデックスを持っていることを確認しなければならない$_POSTを使用することです。

if(isset($_POST['variable']) 
{ 
    // do stuff with $_POST['variable'] 
    ... 
} 

issetテストがなければ、あなたは致命的なランタイムエラーのリスクを実行します。だから、$this->input->post('variable')を使用すると、継続的に2年間、我々はXSS atacksを防ぐhtml purifierに(d)を使用する前に、私が働いていたプロジェクトhttp://conferience.comでそのifブロック

1

を構築するの退屈を取り除きます。また、プレーンテキスト入力が必要な場合、PHPのネイティブstrip_tagsメソッドを使用して、任意のHTML文字列をストライピングしました。

は、したがって、私たちは、次の設定を設定します。

$ global_xss_filtering = FALSE

をそして$_POST['something']/$this->input->post('something')入力にマニュアルの取り扱いを使用しました。

関連する問題