关于PHP中的数据插入,我有一个问题.
在我的网站上有一个消息系统.
因此,当我的收件箱加载时,它会提供一个JavaScript警报.
我在我的网站上搜索了很多,最后我发现有人给我发了一条信息,上面有文字.
那么如何限制插入数据库的脚本代码呢?
我正在运行PHP.
JavaScript代码存储在数据库中没有问题.实际问题是从数据库中获取非HTML内容并将其显示给用户,就好像它是HTML一样.正确的方法是确保您的呈现代码将文本视为文本,而不是HTML.
在PHP中,这可以通过htmlspecialchars
在显示收件箱时调用收件箱内容来完成(可能伴随nl2br
并可能转向标签的链接).
避免使用striptags
文本内容:作为用户,我可能想要输入如下消息:
... and to create a link, use your-text-here ...
striptags
将删除标记,htmlspecialchars
将文本显示为键入.
您不应该将其限制为插入数据库(如果StackOverflow会限制它,我们将无法在此处发布代码示例!)
您应该更好地控制显示方式.例如,添加htmlentities()
或htmlspecialchars()
到您的echo
电话.
这称为XSS.在SO上有很多关于它的线索.
如何使用HTML/PHP防止XSS?
在PHP站点中避免xss攻击的最佳做法是什么?
XSS攻击预防
阻止XSS和SQL注入就像这样简单......?