SQL インジェクションとは一体何ですか?
PHP を勉強したばかりなのですが、いつも他の人が SQL インジェクションに注意して文章を書いているのを見かけます。SQL インジェクションとは、データベースにいくつかの特殊なシンボルが書き込まれるようです。それは問題ありませんが、質問があります。「' などの特殊な記号が書き込まれても、セキュリティ上の脅威にはなりません。
-----解決策のアイデア--- --- ---------------
簡単な例
たとえば、ユーザーがログインするために入力したユーザー名とパスワードが正しいかどうかを確認したいとします。正しい。
$username = 'fdipzone';
$password = '123456';
$sql = "select * from table where username='".$username."' and password='" .$password."'";
しかし、$password に次の文字を入力すると、チェックを回避できます。
$password = "abc' or '1'='1"
クエリ ステートメントは、
select * from table where username='fdipzone' and password='abc' or '1'= ' になります。 1'
このように、どんなユーザー名とパスワードを入力しても正常に通ります。
アンチインジェクションとは、影響を与える一部の文字 (' など) をエスケープすることを意味します。