質問

私のウェブサイトをテストするために会社の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変数にも同様に行うことができます。

それはあなたが整数値のみを持っていることを保証します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top