在我的应用程序中,有一个评论框。如果有人输入类似
的评论
<script>alert("hello")</script>
然后当我加载该页面时会出现一个警告。
有什么办法可以防止这种情况发生吗?
最佳答案
有几种方法可以解决这个问题,但由于您没有提到您使用的是哪种后端技术,所以只能给出粗略的答案。
此外,您还没有提到是否要允许或拒绝在框中输入常规 HTML 的能力。
方法一:
在输入的过程中清理输入。当您在服务器上接受某些内容时,查找脚本标签并将其删除。
这实际上比预期的要难得多。
方法二:
在返回服务器的过程中转义数据。在 PHP 中有一个函数叫做
htmlentities
这会将所有 HTML 转换为按字面意思呈现的内容。
单词<script>alert("hello")</script>
会出现在您的页面上。
方法三
白名单
这远远超出了单个帖子的答案,而且确实需要了解您的后端系统,但允许一些 HTML 字符而不允许其他字符是可能的。
要做到这一点非常困难,您最好使用经过良好测试的库包。
关于javascript - 防止用户输入的脚本在网页中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25397070/