php - 如何限制使用 PHP 将 JavaScript 脚本插入数据库?

标签 php javascript database

我有一个关于在 PHP 中插入数据的问题。

在我的站点中有一个消息系统。

因此,当我的收件箱加载时,它会发出一个 JavaScript 警报。

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

<script>
  alert(5)
</script>

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

我在 PHP 上运行。

最佳答案

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

在 PHP 中,这将通过调用 htmlspecialchars 来完成。在显示收件箱时在收件箱内容上(可能连同 nl2br 并且可能将链接转到 <a> 标签)。

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

... and to create a link, use <a href="your-url-here">your-text-here</a> ...

striptags将消除标签 htmlspecialchars将使文本显示为键入时的样子。

关于php - 如何限制使用 PHP 将 JavaScript 脚本插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999651/

相关文章:

php - 更好的日志记录设计或一些 SQL 魔法?

javascript - 在 Qualtrics 中实现多页计时器

javascript - Bootstrap 4 Beta - 使用 ScrollSpy 平滑滚动

database - 数据压缩如何比索引更有效地提高搜索性能?

sql-server - SQL Server 索引顺序(日期时间字段)

mysql - 如何以编程方式将新用户插入我的论坛?

php - yii2 类验证器不存在

php - 我的 php 代码只将我的 csv 文件的第一行导入到数据库

php - 通过 php/shell 脚本在 linux 中创建一个文件?

javascript - 文本悬停时的滑动效果