これはSQL injectionの症状である可能性があります。
は、我々は(特にcontent
フィールドを含む)とcomments
テーブル(username
、password
、email
、および他の中last_ip
フィールドを含む)users
テーブルがあるとします。
POST /blog/comment HTTP/1.1
(some headers here)
post_id=42&comment=Thanks
サーバー、データベースにこのコメントを挿入しますが、パラメータを含めることが安全でないことがあります:ユーザーの投稿、彼らが実際にこのように見えるかもしれHTTPリクエストを送信したコメントが
INSERT INTO comments (content) VALUES (SELECT GROUP_CONCAT(CONCAT(username, ',', password, ',', email, ',', last_ip) separator ';') FROM users)
:
// $comment is straight from the HTTP request
mysqli('INSERT INTO comments (content) VALUES (' . $comment . ');');
次のSQLクエリの結果を慎重に細工されたコメントを送信することが可能です210
これは基本的に、users
テーブルの内容をブログのコメントとしてダンプし、フォーラムでうれしく表示されます。少しsneakierバリアントは、Webブラウザが非表示になりますが、curl
がないことをHTMLコメントにそれを回すために<!--
と-->
で、このダンプを取り囲むようになりますので
もちろん、これはあまりにも明らかであろう。
それがシンプルである場合には、認証方法によって異なります。 'ます。http://ログイン:あなたの-url' @パスワードウェブは、ログインフォームを使用している場合、それは少し違うことでしょう。 –
ログインフォームを使用します。私がカールを使用したとき、私は自分のユーザー名とパスワードでログインしていなかったので、ブラウザにあったクッキーを使っただけです。あなたが使用する場合@DavidPérezCabrera – user37421
@ user37421 'curl'、クッキーがブラウザから取られたが、サーバーに保存されたファイル... – Legionar