概要
大好きなアプリやサイト、実はSQLインジェクションって恐ろしい攻撃に狙われてるかも… でも大丈夫!今日だけは女子高生探偵の私が、その正体と退治方法を徹底解説しちゃうよ!難しい話はなし、プレースホルダって便利な武器も紹介しちゃうから、安心して読んでね!
説明
SQLインジェクションって、まるで悪者がアプリやサイトに忍び込んで、個人情報や大切なデータを盗み出す恐ろしい犯罪なの! しかも、その手口はとっても巧妙で、まるで透明人間のように気付かれずに侵入しちゃうんだ。
でも、心配しないで!私たちには、SQLインジェクション対策って正義の武器があるの!具体的には、パラメータバインディングとプレースホルダって2つの必殺技があるんだけど、今日は初心者でも簡単に使えるプレースホルダに注目してみよう!
プレースホルダって何?
プレースホルダは、まるで宝箱の鍵みたいなもの!正しい鍵を使えば、宝箱を開けて大切なデータを守れるんだけど、間違った鍵を使えば… まあ、データベースのデータが盗まれちゃうってことね。
プレースホルダの使い方
プレースホルダを使うには、まずSQL文に ? を使うの。例えば、ログイン画面でユーザー名とパスワードを入力する時、こんなSQL文になるんだけど…
SQL
SELECT * FROM users WHERE username = '$_POST['username']' AND password = '$_POST['password']';
これがプレースホルダを使うと、こうなるの!
SQL
SELECT * FROM users WHERE username = ? AND password = ?;
そして、この ? に実際のユーザー名とパスワードを代入するのよ。
PHP
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $password);
$stmt->execute();
これで、悪者が入力した不正な文字列がSQL文に組み込まれるのを防いで、大切なデータをバッチリ守れるってわけ!
まとめ
SQLインジェクションは恐ろしい攻撃だけど、プレースホルダを使えば女子高生でも簡単に退治できるの!今日学んだことを忘れずに、大切なアプリやサイトを守ってね!