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

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

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

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

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

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

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

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

はい、怒られました。

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

怖いですね〜

filter_input_arrayを使ってみる

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

出力を見てみると

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

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

$_POSTの中をいじってみる

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

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

$_GETの場合はどうか

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

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

中身を変えてみましょう

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

filter_input_arraysでのサニタイズについてと、INPUT_GETと$_GETは違うよという話
filter_input_arrayは$_GET,$_POSTを扱いやすくする関数なので当たり前といえば当たり前ですが…

おわり

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

Instagram Feed

Load More

Instagram

専務取締役

funatsukeisuke

WEBと教育を組み合わせて何かおもしろいことをやってやろうと画策しています。AWESOMEでは開発を担当、個別指導塾コミットでは塾長と2足の草鞋を履きながら日々勉強しています。

他の投稿を見る →