如何清除字符串以避免SQL注入和最常见的攻击类型? (在PHP中)
|
有没有一种方法,可以用最少的代码为SQL注入和最常见的攻击形式过滤字符串?
在我的脚本中,我正在使用以下内容,我想知道它是否相当安全以及其他人是否有建议:
$cleanName = htmlspecialchars(addslashes($dirtyName));
查看如何过滤html字符,引号和双引号。
注意:我使用的是addslashes()
而不是mysql_real_escape_string()
,因为我不想将正在使用的数据库硬编码到代码中。
这个可以吗?
提前致谢
没有找到相关结果
已邀请:
4 个回复
冕偷淮款
。 对于HTML输出,请使用
。 若要通过
作为命令调用,请使用
。 要通过
将参数传递给命令,请使用
。 要传递数据库参数:使用
。 没有神奇的转义文本的“通用”解决方案。在内部保留原始文本,并出于适当目的对其进行转义。
剑哎
珊畴炮贩号
希望这可以帮助。
踩什不
上面的代码也应该阻止所有通过GET或POST执行的攻击,但是假定您只希望输入字母数字。好吧,我主要是想到目录遍历攻击,但是如果您使用GET变量查询数据库或将其显示为html实体,则可以防止任何攻击。 一个http://mydomain.tld?index.php?page = .. / .. / etc / passwd请求不会从您网站的/ var / www文档根目录读取passwd文件,但只会尝试包括etcpasswd.php文件