首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将安全性添加到不安全的PHP mysql脚本中

问将安全性添加到不安全的PHP mysql脚本中
EN

Stack Overflow用户
提问于 2012-04-11 21:02:04
回答 2查看 229关注 0票数 2

我有很多文件

代码语言:javascript
复制
1- mysql_query("update ... $_POST['foo'] ...");

我想把它转化成这个

代码语言:javascript
复制
2- $foo = mysql_real_escape_string($_POST['foo']);
3- mysql_query("update ... $foo ...");

我的想法是打开每个文件,选择文本$_POST['foo'] (表单1-)按一个键组合,然后一些工具自动:

  • 将剪贴板mysql_real_escape_string($_POST['foo']); (用于添加2-)
  • 替换为3-

中的文本。

然后手动编写$foo =并按ctrl+v生成2-

我正在尝试使用notepad++和一个名为“指纹图”的插件,并试图制作一个宏,但没有成功。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-11 21:06:30

代码语言:javascript
复制
$_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)。

票数 3
EN

Stack Overflow用户

发布于 2012-04-11 21:08:17

用手一个接一个地替换它们。如果你关心安全,不要自动更换。并且至少让一个函数代替mysql_real_escape_string((),使用它。

代码语言:javascript
复制
 //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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10113954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档