2017-01-07 13 views
1

次のクエリでSQLインジェクションを悪用する可能性はありますか?制限句にSQLインジェクション

mysql_query("SELECT `one`, `two`, `three` FROM test LIMIT ".$vulnerablepost.",2;") or die(mysql_error()); 

可能なクエリの可能性はありますか? SELECT OUTFILEを実行することは可能ですか? ありがとう

+0

はいです。入力を操作したり、間違ったSQLを注入するように調整することができるので – Rahul

+1

誰かがあなたにハックを与えたとしても、準備されたステートメントを使うほうが良いでしょう。チャンスを取らないでください。 –

+0

私に例のコードを教えてもらえますか?なぜなら私はそれをすることはできなかったからです。 – Xyt

答えて

1

はいです。入力は誤ったSQLを注入するように操作または調整することができるためです。どのようなあなたの入力値が

$vulnerablepost = "20;delete from student_table;select 1"; 

のように見える場合は、はいそれは、あなたがいけない構文的に正しいか、それ以下のようなSQLクエリで終わっただろうが、トラブル

SELECT `one`, `two`, `three` FROM test LIMIT 20;delete from student_table;select 1,2; 
+0

複数のクエリが無効になっている場合、それを悪用することはできませんか?私はそれがデフォルトのケースだと思う。私が間違っているなら私を訂正してください。 – Xyt

+1

@Xyt、私の与えられた例だけではありません。さらに、他の人たちもあなたのデータでチャンスを取るのはなぜですか?あなたは本当にそれが来たいですか?シンプルなプラクティス:クエリに来るユーザー入力がある場合は、以前に説明したSI – Rahul

+0

を避けるためにパラメータ化されたクエリを使用しています。古いrawコードで作業するのに十分な時間がありません。どんな可能性も、そのまま残すことができます。 – Xyt

0

であなたを配置しますそれを使用している。 PDOまたはMysqliを使用してください。 http://php.net/manual/en/ref.pdo-mysql.php

非常に古いバージョンのPHPを使用している場合を除き、そのファンクションは使用しないでください。あなたはそのページのドキュメントもチェックすることができます。 http://php.net/manual/en/function.mysql-query.php

Warning 
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: 
mysqli_query() 
PDO::query()