当前位置:  开发笔记 > 编程语言 > 正文

防御mysql注入和跨站点脚本的最佳方法

如何解决《防御mysql注入和跨站点脚本的最佳方法》经验,为你挑选了2个好方法。

目前,我采用了"把所有东西扔在墙上,看看有什么方法"来阻止上述问题.以下是我拼凑在一起的功能:

function madSafety($string)
{

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

}

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

我想我在问,你们采用哪种方法,这些方法有多成功?谢谢



1> troelskn..:

只做很多你不太了解的事情,对你没有帮助.您需要了解注射攻击是什么,以及您应该如何以及在何处执行操作.

在要点:

禁用魔法引号.他们是一个不充分的解决方案,他们混淆了问题.

永远不要在SQL中直接嵌入字符串.使用绑定参数,或转义(使用mysql_real_escape_string).

stripslashes从数据库中检索数据时不要 unescape(例如.).

当你在html中嵌入字符串时(例如,当你echo)时,你应该默认转义字符串(使用htmlentitieswith ENT_QUOTES).

如果需要在html中嵌入html-strings,则必须考虑字符串的来源.如果它不受信任,您应该通过过滤器进行管道传输.strip_tags在理论上你应该使用什么,但它是有缺陷的; 请改用HtmlPurifier.

另请参阅:使用PHP清理用户输入的最佳方法是什么?



2> vartec..:

反对SQL注入的最好方法是绑定变量,而不是将它们"注入"到字符串中. http://www.php.net/manual/en/mysqli-stmt.bind-param.php

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有