会社のAcunetixを用いたブラインドSQLインジェクション
-
20-09-2019 - |
質問
私のウェブサイトをテストするために会社のAcunetixを使用して
こんにちはイム 問題は、このスクリプト http://boedesign.com/blogであります/ 2007/02/18 / AJAXつ星評価/ の
会社のAcunetix doesntの任意のメッセージを表示しますが、私はブラインドSQLをテストするとき、私は
のような値を得ることができます8 and 1=0 --
8 and 31337-31337=0
rating_id mysqlの欄には、私はそこに数字を許可したいので、私は少し修正をしたが、最初の数は8はその通過trought場合があるため、私はそれをどのように修正することができますか?で、このようなその何かが含まれて/ rating_process.php
// IF JAVASCRIPT IS ENABLED
if($_POST){
$id = escape($_POST['id']);
$rating = (int) $_POST['rating'];
if($rating <= 5 && $rating >= 1 && $id >= 1 && $id <=9999999){
if(@mysql_fetch_assoc(mysql_query("SELECT id FROM ratings WHERE IP = '".$_SERVER['REMOTE_ADDR']."' AND rating_id = '$id'")) || isset($_COOKIE['has_voted_'.$id])){
echo 'already_voted';
} else {
とほぼ同じで考える「// JavaScriptが無効になっている場合は、」
解決
あなたは評価は整数でなければならないことがわかっている場合、あなたは整数として、あなたの変数をキャストすることができます:
$rating = (int) $_POST['rating'] ;
あなたはid
変数にも同様に行うことができます。
それはあなたが整数値のみを持っていることを保証します。
所属していません StackOverflow