登録されていないデータでもサイトにログインできてしまう

ログイン機能が出来てデータを格納するところもあり、登録されていないデータではサイトに入れないので安心。と思っていたら” OR ‘A’ = ‘A’というわけのわからない名前でログインできてしまう。 どうやら「’」によってデータベースから探してくる動作を妨害してくれているらしい。妨害された結果、不正にログインできてしまう。 そういった不正から守るにはphpページに以下のコードを追加する必要がある。

$sql = "SELECT * FROM user_info WHERE name=? AND password=?";

 ?による機能をプレースホルダといい、不正ログインさせないようになっている。これで安全だ。