Uğu*_*han 7 php mysql casting sql-injection escaping
使用cast(int)而不是转义是否安全?
class opinion
{
function loadbyopinionid($opinionid){
$opinionid=(int)$opinionid;
mysql_query("select * from fe_opinion where opinionid=$opinionid");
//more code
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*c B 13
mysql_real_scape_string适用于STRINGS.它不会使整数'安全'使用.例如
$safe = mysql_real_escape_string($_GET['page']);
Run Code Online (Sandbox Code Playgroud)
会不会在哪里
$_GET['page'] = "0 = 0";
Run Code Online (Sandbox Code Playgroud)
因为那里没有SQL元字符.你的查询最终会像
SELECT ... WHERE somefield = 0 = 0
Run Code Online (Sandbox Code Playgroud)
但是,执行intval()会将其转换0=0为plain 0.