SQLインジェクションのプレースホルダによる対策(SELECTについて)

SELECT * FROM user_info WHERE name = '$username' AND password = '$userpass';

のように入力を受け付けたときに、

SELECT * FROM user_info WHERE name = 'user1' AND password = '' OR 'A' = 'A';

のようなSQL文を生成し、不正なログインなどをするSQLインジェクションに対し、このケースの場合

$sql = "SELECT * FROM user_info WHERE name= :username AND password= :pass";
$stmt = $dbh->prepare($sql);
        $stmt->bindValue(':username',$username,PDO::PARAM_STR);
        $stmt->bindValue(':pass',$password,PDO::PARAM_STR);
        $stmt->execute();

とプレースホルダを用いて対策できる。bindValue()の返り値がboolなのに最初混乱した。注意が必要。

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様