PHP $_GET 安全性、$_POST 安全性最佳实践

Mic*_*son 3 php security variables post get

这是一个很好的主题,但我想在几种不同的情况下对使用来自用户变量的数据的方法进行一些确认。

  1. 该变量从不在数据库中使用,从不存储,仅在用户屏幕上显示。使用哪个函数来确保没有 html 或 javascript 可以搞砸?

  2. 该变量被引入数据库,并在 SQL 查询中使用。

  3. 变量两者兼而有之。

目前我是xss_clean,和strip_tags。我一直这样做,只是通过自动驾驶仪。有没有更好的技术?如果有相同的问题,请见谅。我有点假设有,虽然我找不到像这样彻底的。

干杯。

kni*_*ttl 5

  1. 在输出时使用适当的函数,在 HTML 上下文中,这是 htmlspecialchars
  2. 使用准备好的语句
  3. 请参阅 1. 和 2. – 取决于您是在显示变量还是在查询中使用它。

  • 目前在 PHP 5.4 htmlspecialchars,htmlentities 中存在缓冲区溢出。http://www.fortiguard.com/encyclopedia/vulnerability/php.htmlspecialchars.htmlentities.buffer.overflow.html (3认同)