如何使用PHP重新编译插入数据库的JavaScript脚本?

Avi*_*ash 2 javascript php database

关于PHP中的数据插入,我有一个问题.

在我的网站上有一个消息系统.

因此,当我的收件箱加载时,它会提供一个JavaScript警报.

我在我的网站上搜索了很多,最后我发现有人给我发了一条信息,上面有文字.

<script>
  alert(5)
</script>
Run Code Online (Sandbox Code Playgroud)

那么如何限制插入数据库的脚本代码呢?

我正在运行PHP.

Vic*_*let 7

JavaScript代码存储在数据库中没有问题.实际问题是从数据库中获取非HTML内容并将其显示给用户,就好像它是HTML一样.正确的方法是确保您的呈现代码将文本视为文本,而不是HTML.

在PHP中,这可以通过htmlspecialchars在显示收件箱时调用收件箱内容来完成(可能伴随nl2br并可能转向<a>标签的链接).

避免使用striptags文本内容:作为用户,我可能想要输入如下消息:

... and to create a link, use <a href="your-url-here">your-text-here</a> ...
Run Code Online (Sandbox Code Playgroud)

striptags将删除标记,htmlspecialchars将文本显示为键入.


nai*_*sts 5

您不应该将其限制为插入数据库(如果StackOverflow会限制它,我们将无法在此处发布代码示例!)

您应该更好地控制显示方式.例如,添加htmlentities()htmlspecialchars()到您的echo电话.