题
的Acunetix使用来测试我的网站,即时通讯喜 问题是这个脚本 http://boedesign.com/blog / 2007/02/18 / AJAX星级评级/
的Acunetix犯规显示任何信息,但是当我测试盲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 {
和几乎相同认为在 “// IF禁用JavaScript”
解决方案
如果您知道该评级必须是整数,你可以投你的变量作为一个整数:
$rating = (int) $_POST['rating'] ;
您可以在您的id
变量做的一样好。
它确保你,你只具有整数值。
不隶属于 StackOverflow