我有很多文件
1- mysql_query("update ... $_POST['foo'] ...");我想把它转化成这个
2- $foo = mysql_real_escape_string($_POST['foo']);
3- mysql_query("update ... $foo ...");我的想法是打开每个文件,选择文本$_POST['foo'] (表单1-)按一个键组合,然后一些工具自动:
mysql_real_escape_string($_POST['foo']); (用于添加2-)中的文本。
然后手动编写$foo =并按ctrl+v生成2-
我正在尝试使用notepad++和一个名为“指纹图”的插件,并试图制作一个宏,但没有成功。
有什么建议吗?
发布于 2012-04-11 21:06:30
$_POST = sanitize($_POST);
$_GET = sanitize($_GET);
function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
} else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$output = mysql_real_escape_string($input);
}
return $output;
}这并不完美,但是如果您有很多不安全的页面,并且需要快速修复以使它们都安全,那么您可以在连接到mysql之后将其放入其中。此外,请记住,如果查询中有未引用的数字变量,则必须验证它们是否为数字,或者在查询中使用它们之前键入强制转换。mysql_real_escape_string()只适用于引用的值(即blah_column = 'value',而不是blah_column = value)。
发布于 2012-04-11 21:08:17
用手一个接一个地替换它们。如果你关心安全,不要自动更换。并且至少让一个函数代替mysql_real_escape_string((),使用它。
//just for example, better can be written
function db_escape($var, $type = 'string')
{
if($type == 'string') return mysql_real_escape_string($var);
if($type == 'integer') return (int) $var;
if($type == 'float') return (float) $var;
}https://stackoverflow.com/questions/10113954
复制相似问题