ホームページ  >  記事  >  バックエンド開発  >  結局のところSQLインジェクションとは何ですか

結局のところSQLインジェクションとは何ですか

WBOY
WBOYオリジナル
2016-06-13 12:19:221049ブラウズ

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'
このように、どんなユーザー名とパスワードを入力しても正常に通ります。


アンチインジェクションとは、影響を与える一部の文字 (' など) をエスケープすることを意味します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。