我知道我应该使用准备好的语句,但我的下一个项目将使用准备好的语句,我只需要完成这个简单的小应用程序。
所以我的问题是:
以下代码片段安全吗?
我使用了 htmlentities 以及 mysql_real_escape_string 因为我认为这是一个安全的选择。
//Image
$imageInput = $_POST['Image'];
$imageClean = htmlentities($imageInput, ENT_QUOTES, 'UTF-8');
//Inserts values into relevant field and creates a new row.
mysql_query("UPDATE ***** SET image='" . mysql_real_escape_string($imageClean) . "' WHERE id=" . mysql_real_escape_string($idClean) . "");
添加 $idClean 的代码是:
//Id to change
if(ctype_digit($_POST['testimonial']))
{
$idInput = $_POST['testmonial'];
$idClean = htmlentities($idInput, ENT_QUTOES, 'UTF-8');
}
感谢您的帮助。
p.s如果你能建议添加一些东西那就太好了。
取决于你的清洁程度$idClean
is.
WHERE id=" . mysql_real_escape_string($idClean) . "
mysql_real_escape_string仅在前面加上反斜杠\x00, \n, \r, \, ', " and \x1a http://php.net/manual/en/function.mysql-real-escape-string.php,但这不会阻止攻击者使用
$idClean = "1 OR 1=1 AND POSSIBLY OTHER SQL STATEMENTS"
代替mysql_real_escape_string
你应该将它转换为 int 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)