【问题标题】:What risks are there in using extracted PHP superglobals?使用提取的 PHP 超全局变量有什么风险?
【发布时间】:2010-05-29 06:00:34
【问题描述】:

在超全局变量中使用函数extract作为$_POST$_GET存在一定的风险,我的工作方式如下。

存在 SQL INJECTION 的风险或存在提取的替代方法

if(get_magic_quotes_gpc()) {
    $_GET = stripslashes($_GET);
    $_POST =stripslashes($_POST);
}

function vars_globals($value = '') {
    if(is_array($value))
        $r = &$value;
    else
        parse_str($value, $r);

    return  $r;
}

$r = vars_globals($_GET);

extract($r, EXTR_SKIP);

【问题讨论】:

  • 如果有人自愿翻译,将不胜感激:)
  • Не могу понять что тут написано
  • 好的,使用超全局变量中的函数提取作为$_POS 和$_GET 存在一些风险,我的工作方式如下。存在 SQL INJECTION 的风险或有替代方法来提取抱歉翻译谷歌!

标签: php extract


【解决方案1】:

是的,有风险。您不想盲目地将用户输入导入符号表。您应该花时间验证和/或清理用户输入。 filter_var 函数可以帮助解决这个问题。

插入数据库时​​,使用驱动程序的转义机制消除注入的可能性。如果你使用 mysql_* 函数,你会使用 mysql_real_escape_string。但是,为此使用 PDO 和参数化查询要好得多。

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2018-09-09
    • 2011-01-04
    • 2010-11-24
    • 1970-01-01
    • 2011-03-14
    • 2011-11-07
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多