数据库
首页 > 数据库> > 如何清理字符串以避免SQL注入和最常见的攻击类型? (在PHP中)

如何清理字符串以避免SQL注入和最常见的攻击类型? (在PHP中)

作者:互联网

有没有办法以尽可能少的代码为SQL注入和最常见的攻击形式过滤字符串?

在我的脚本中我使用以下内容,我想知道它是否相当安全以及是否有其他人有建议:

$cleanName    = htmlspecialchars(addslashes($dirtyName));

看看我如何过滤html字符以及引号和双引号.

注意:我使用的是addslashes()而不是mysql_real_escape_string(),因为我不想将我正在使用的数据库硬编码到我的代码中.

这个可以吗?

提前致谢

解决方法:

可能不是……你需要单独为每个目的逃避原始文本,你将使用它:

>对于GET请求,请使用urlencode.
>对于HTML输出,请使用htmlentities.
>要通过系统调用命令,请使用escapeshellcmd.
>通过系统将参数传递给命令:使用escapeshellargs.
>对于传递数据库参数:使用mysql_real_escape_string.

对于神奇地逃避文本,没有“通用”解决方案.在内部保留原始文本,并为适当的目的将其转义.

标签:php,security,filter,user-input,sql-injection
来源: https://codeday.me/bug/20191009/1875664.html