このようなSQLインジェクションの脆弱性が存在する場合:
$UnsafeVariable = $_GET['param'];
$sql = "SELECT title FROM articles LIMIT $UnsafeVariable";
は、次にSQLインジェクションの例は次のように::
http://mysite.example.com/page.php?param=0 UNION SELECT anything FROM anytable
これは、SQLインジェクションを犯すためにUNIONを使用するのが一般的だ可能性があります。私はここにあなたがhttps://owasp.orgのようなサイトで読むことができない何かを明らかにするわけではありません。読書をしてみるべきです。
デモ:私はベンチマークを試してみた
mysql> create table MyTable (id int primary key);
mysql> create table SecureTable (secret varchar(50));
mysql> insert into MyTable values (1), (2), (3);
mysql> insert into SecureTable values ('Alohomora');
mysql> select id from MyTable limit
/* now the part that is SQL injected */
1 union select secret from SecureTable;
+-----------+
| id |
+-----------+
| 1 |
| Alohomora |
+-----------+
http://www.edwardl.xyz/2015/02/06/SQL%20Injections%20in%20MySQL%20LIMIT%20clause/ – Hadi
メソッドが呼び出されましたが、すぐにロードされたため、おそらくエラーがすぐにスローされました。 –
制限句を消毒するためにソースを変更できませんか?どのようなスタックを使用していますか?もしPHP/mysqlが読んだら価値があるかもしれないならhttps://stackoverflow.com/questions/10014147/limit-keyword-on-mysql-with-prepared-statement –