微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在插入MySQL之前使用htmlspecialchars很好吗?

如何解决在插入MySQL之前使用htmlspecialchars很好吗?

正如其他人指出的那样,#2是正确的答案。将其保留为“原始”,直到需要它为止,然后适当地逃避。

为了详细说明原因(我将重复/总结其他文章),让我们将场景1推至逻辑极限。

当有人输入“ ' OR 1=1 <other sql injection> --”时会发生什么。现在也许您决定因为使用sql而应该为sql编码(也许因为没有使用参数化语句)。因此,现在您必须混合(或决定)sql和HTML编码。

突然,您的老板决定他也想要XML输出。现在,要保持模式一致,您还需要对此进行编码。

一个CSV-哦,不!如果文本中有引号和逗号怎么办?更多转义!

嘿-一个好的交互式AJAX界面怎么样?现在您可能想开始将JSON发送回浏览器,因此现在{,[等。都需要考虑在内。帮助!!

显然,按给定存储数据(当然要受域约束),并 根据您的输出进行适当的编码。

我希望这个答案不要太光顾。归功于其他受访者。

解决方法

我对此有些困惑。我一直在阅读有关内容,htmlspecialchars()并计划将其用于文本区域POST以防止XSS攻击。我了解通常htmlspecialchars()用于生成发送到浏览器的HTML输出。但是我不确定的是:

1)htmlspecialchars()在将数据插入MySQL之前,先对用户输入的数据进行使用是一种安全的做法吗?我已经在使用带有参数化值的PDO准备好的语句来防止SQL注入。

2)或者,我真的不需要担心要使用htmlspecialchars()插入值(只要已对它们进行了参数化)而仅htmlspecialchars()在我从MySQL获取结果并将其显示给用户时使用?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。