ホームページ > バックエンド開発 > PHPチュートリアル > php SQLインジェクションの原則について

php SQLインジェクションの原則について

WBOY
リリース: 2016-06-23 14:28:04
オリジナル
1029 人が閲覧しました

たとえば、オンラインで URL www.xx.com/news.php?id=3 のようなリンクを検索すると、末尾に ' 記号を追加するとエラーが報告されます。または、1=1 の場合はエラーが報告されます。そして、and 1=2、両方が返された場合 値が異なっていれば注入ポイントがあると判断できます

例えば、www.xx.com/news.php?id=3 ここは、私のSQLは次のようなものです select * from news where id='3' アドレスバーに追加します '記号の後にエラーが発生するのはなぜですか? and 1=1とand 1=で注入ポイントがあると判断できるのはなぜですか? 2?


ディスカッションへの返信 (解決策)

' を追加すると、どのようなエラーが表示されるかわかりません。' を追加すると、渡された値が文字として扱われます。ただし、agic_quotes_gpc をオンにすると、
and 1 = 1 のように、引用符がエスケープされます。たとえば、
SELECT * FROM tbl_users
WHERE username='zhang3' OR 1=1 #' AND password = 'abc123' LIMIT 0。 ,1
# は mysql のコメント文字であるため、# の後のステートメントは実行されません。この行のステートメントを実装するには、次のようになります:
SELECT * FROM tbl_users
WHERE username='zhang3 'OR 1=1
このようにします。攻撃者は認証を回避できる

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート