gpt4 book ai didi

php - 抵御 sql 注入(inject)和跨站点脚本的最佳方法

转载 作者:IT王子 更新时间:2023-10-29 00:19:44 28 4
gpt4 key购买 nike

目前,我采用“将所有东西都扔到墙上,看看有什么能粘住”的方法来阻止上述问题。下面是我拼凑的函数:

function madSafety($string)
{

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

}

但是,我相信有更好的方法可以做到这一点。我正在使用 FILTER_SANITIZE_STRING,这似乎并不完全安全。

我想我是在问,你们采用了哪些方法,它们的成功率如何?谢谢

最佳答案

只是做很多你并不真正理解的事情,对你没有帮助。您需要了解什么是注入(inject)攻击,以及您应该如何以及在何处执行哪些操作。

要点:

  • Disable magic quotes .它们是不充分的解决方案,而且会混淆问题。
  • 切勿直接在 SQL 中嵌入字符串。使用绑定(bind)参数,或转义(使用 mysql_real_escape_string)。
  • 不要从数据库中检索数据时取消转义(例如stripslashes)。
  • 当你在 html 中嵌入字符串时(例如,当你 echo 时),你应该默认对字符串进行转义(Using htmlentities with ENT_QUOTES ).
  • 如果需要在 html 中嵌入 html 字符串,则必须考虑字符串的来源。如果它不受信任,则应通过过滤器对其进行管道传输。 strip_tags 在理论上是您应该使用的,但它有缺陷;使用 HtmlPurifier相反。

另请参阅:What's the best method for sanitizing user input with PHP?

关于php - 抵御 sql 注入(inject)和跨站点脚本的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/568995/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com