ローディング中

filter_input_arraysでのサニタイズについてと、INPUT_GETと$_GETは違うよという話

みなさんこんにちは、個別指導塾コミット塾長、AWESOMEの船津です。
けものフレンズのOP、いいですよね。

今回はinput_filter_arrayの仕様とサニタイジングで遊んでみましょう。

とりあえずフォームをつくる

以下のようなフォームを作成します。

とりあえずクロスサイトスクリプティングの攻撃をしてみましょう。

こちらのサイトを参考にしました。

クロスサイト・スクリプティング(XSS)の具体例

Screen Shot 2017 02 21 at 1 11 38

はい、怒られました。

Screen Shot 2017 02 21 at 1 03 25

怖いですね〜

filter_input_arrayを使ってみる

大量のデータを扱う際に、配列をサニタイズしてくれる関数になります。
$input_post = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
みたいに書いておけば、基本的にOKです。

http://php.net/manual/ja/function.filter-input-array.php


出力を見てみると

Screen Shot 2017 02 21 at 1 17 15

確かに無害化されているようです。
コンソールエラーもなし

$_POSTの中をいじってみる

$POSTの場合はINPUT_POSTと$POSTは同じように扱えます。

$_POSTが書き換わるとINPUT_POSTも書き換わります。

$_GETの場合はどうか

$_GETの場合も以下のように取得することでサニタイズできます。

$_GETをいじってみると、$_GETとINPUT_GETが別物とわかる

中身を変えてみましょう

こんな感じで$_GETとINPUT_GETの中身が違うものになります。

Screen Shot 2017 02 21 at 1 39 07
filter_input_arrayは$_GET,$_POSTを扱いやすくする関数なので当たり前といえば当たり前ですが…

おわり

今回はfilter_input_arrayの紹介とINPUT_GETの豆知識を紹介しました。
PHPって便利な関数が多くていいですね。

ホームページ制作のご相談・ご依頼は

079-451-5881

68ED4C65-BA1E-46D0-A7AC-B9869923C696 Created with sketchtool. A07C553F-CF16-4B7D-94FE-D36AE0A6297D Created with sketchtool. 37B7D8F4-7A18-4725-9EC6-595ABDF69D64 Created with sketchtool. 95DFB680-1EDF-4199-BC4A-BB6752EBA23C Created with sketchtool. 02DDF754-E1DB-4EF2-B6BB-C884722938C4 Created with sketchtool. NEW! 1A95E369-6469-4C46-B38F-F83410B928B0 Created with sketchtool. Group 5Group 2Group 4Group 3 E4FC8CF2-721D-4699-8162-18E886C432C1 Created with sketchtool.