防范MySQL注入和跨站点脚本的最佳方法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

现在,我用“把所有东西都扔到墙上,看看有什么坚持”的方法来阻止上述问题。下面是我拼凑在一起的功能:

function madSafety($string)
{

$string = mysql_real_escape_string($string);
$string = stripslashes($string);
$string = strip_tags($string);
return $string;

}

然而,我相信有更好的办法来做到这一点。我用的是过滤器_消毒_字符串和这似乎并不完全安全。

我想我是在问,你们采用了哪些方法,他们有多成功?谢谢

提问于
用户回答回答于

做很多你不太明白的事情,对你没有帮助。需要了解注入攻击是什么,以及应该如何和在何处进行攻击。

在要点中:

  • 禁用魔术引号.它们是一个不充分的解决办法,它们混淆了问题。
  • 不要在SQL中直接嵌入字符串。使用绑定参数或转义(使用mysql_real_escape_string)
  • 不要逃脱(如)stripslashes)从数据库检索数据时。
  • 当在html中嵌入字符串时(例如echo)时,应该默认转义字符串(使用htmlentities带着ENT_QUOTES)
  • 如果需要将html-字符串嵌入到html中,则必须考虑字符串的来源。如果它不可信,应该通过过滤器将其输送出去。strip_tags从理论上讲,你应该使用什么,但它有缺陷;使用Html净化器相反。
用户回答回答于

对付SQL注入的最佳方法是绑定变量,而不是将它们“注入”到字符串中。

扫码关注云+社区