私はYouTubeの埋め込みコードや他のHTMLタグを追加しようとしているテキストエリアがあります。 $this->input->post
はタグをそれぞれ<
と>
に変換しますが、<h1>
タグと<h2>
タグは変換していません。CodeIgniter santizing POSTの値
これらの値をどのように保存することができますか?
私はYouTubeの埋め込みコードや他のHTMLタグを追加しようとしているテキストエリアがあります。 $this->input->post
はタグをそれぞれ<
と>
に変換しますが、<h1>
タグと<h2>
タグは変換していません。CodeIgniter santizing POSTの値
これらの値をどのように保存することができますか?
なぜ、CIsの自動サニタイズを避けて、htmlspecialchars($_POST['var']);
のようなものを使用しますか?または、YouTubeのURLを消毒するためのヘルパー機能を作ってください...
または、あなたはビデオIDコードを求めても、あなたが得ているものからコードを解析することもできます。
これにより、URLまたは埋め込みコードの両方を使用できます。 IDだけを格納することで、データベースのスペースが少なくて済み、埋め込みコード/ urlを出力するヘルパー関数を書くことができます。
iframeを許可する必要があるフォームの数が少ない場合は、有効なYouTube埋め込みコードであることを検証しながらiframeを復元する関数を作成するだけです。
設定でglobal_xss_filteringを無効にすることもできます(使用している場合は実装しないこともできます)が、理想的な解決策ではありません(1つのことを動作させるためにすべてのセキュリティをオフにするのは一般的に恐ろしい考えです)。
$config['global_xss_filtering'] = FALSE;
、除外を受けるすべてのタグを見るCI_Input
クラスで見て、「$naughty
」変数を検索します。パイプで区切られたリストが表示されます(このクラスでは何も変更しないでください)。そして、この場合
、オリジナルのテキストエリアの値を取得する代わりに$this->input->post
の$_POST
を使用し、必要タグを失うことなく、コンテンツをきれいにするHTML Purifierを使用しています。
詳細については、HTML Purifierのドキュメントをチェックする必要があります。 this specific documentation page about "Embedding YouTube Videos"を確認してください。
CodeIgniter 2では、$ config ['global_xss_filtering'] = TRUEを設定した場合、CodeIgniterは実際に$ _POST配列の値を上書きします。 –
CodeIgniterの最新バージョンでこれを表示している人は、その '$ naughty'変数のsystem/coreのSecurityクラスをチェックしてください。 – Wolfman2000