【问题标题】:Should I still escape? $_GET and XSS, SQL Injection and other PHP Security Concerns我还应该逃吗? $_GET 和 XSS、SQL 注入和其他 PHP 安全问题
【发布时间】:2011-08-10 14:08:43
【问题描述】:

如果我使用 $_GET 从 URL 字符串中检索数据并且没有在网页上显示该数据或使用它执行任何 SQL 操作,我是否仍应考虑使用转义、正则表达式和其他安全代码?该字符串可以包含任何字符。

希望这是有道理的。

【问题讨论】:

标签: php security sql-injection mysql-real-escape-string xss


【解决方案1】:

如果您不输出字符串或将其传递给另一个程序(sql、打开文件等),则不需要转义它。

【讨论】:

  • 如果我将它传递给一个独立的应用程序(不是浏览器,sql,..)怎么办?
  • @newphper:转义它以匹配应用程序的规则。你如何将它传递给应用程序?使用systemexecpassthru 函数? (或php中的反引号运算符)?那么你必须逃离他们。否则,您将允许每个人在运行用户 php 时在您的系统上执行任意命令。 escapeshellarg 可能是一个很好的起点
  • 据我了解,数据作为 json blob 传递到应用程序。抱歉,我还在想办法。
  • 即使对于 json 对象也使用escapeshellarg(json 格式使用许多 shell 特殊字符:{};"')!比后悔更安全
【解决方案2】:

如果您没有在 SQL 语句中使用 URL 参数,则它不能用作 SQL 注入。

【讨论】:

  • 如果你用它来输出到页面上,然而,还有另一个危险(XSS)
  • @Vladislav - 是的,我原本打算提到这一点,但他说他没有输出参数。
猜你喜欢
  • 2014-02-16
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2010-10-12
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多