matsu-beginner / lamp_practice

課題開発用のリポジトリです。
0 stars 0 forks source link

sqlインジェクションの対策 #4

Open matsu-beginner opened 4 years ago

matsu-beginner commented 4 years ago

@primestyleus modelフォルダにあるdb.phpのexecute_query関数の中に、PDOのbindValueメソッドを使い値をバインドして、sqlインジェクションの対策をする。

primestyleus commented 4 years ago

@matsu-biginner データバインドをするのは正解なのですが、バインドの仕方が今回異なります。(bindValueを使いません) 以下の公式ドキュメントと、現状のソースコードをよく見ていただき、バインドの方法を考えていただければと思います! https://www.php.net/manual/ja/pdostatement.execute.php

matsu-beginner commented 4 years ago

execute_query関数の中に、配列として渡ってきたparams引数をforeachで回して、bindParamでバインドする。

matsu-beginner commented 4 years ago

@primestyleus

primestyleus commented 4 years ago

@matsu-biginner

execute_query関数の中に、配列として渡ってきたparams引数をforeachで回して、bindParamでバインドする。

実は、execute_query関数については変更する必要はありません。PDOのexecute関数そのものが、バインドする仕組みを持っています。 https://www.php.net/manual/ja/pdostatement.execute.php こちらの公式ドキュメントの例2、もしくは例3の方法で今回は実装していただくことになります。 ポイントとしては、execute_query関数を呼び出している部分で、どのように配列指定をするか、になります。