gpt4 book ai didi

javascript - 在维护 HTML 的同时避免 JavaScript 注入(inject)?

转载 作者:行者123 更新时间:2023-11-28 00:57:41 25 4
gpt4 key购买 nike

 $("#id").append(dataHtml);

当注入(inject) <script>alert('test)</script> 时屏幕上出现一个警告框,显示测试。我对 html 进行了编码,但随后它显示为纯文本。

我从数据库获取 dataHtml 的值。由于某些原因,我必须使用 javascript/jquery 在客户端完成这一切。

如何在维护 html 的同时忽略此类标签/注入(inject)?

最佳答案

您可以使用简单的正则表达式来删除所有脚本标签:

dataHtml = dataHtml.replace(/<script.*>[\s\S]*.*[\s\S]*<\/script>/g,"");

一些解释:

  • .*:除换行符之外的所有字符(*次)
  • [\s\S]*:换行符

要测试一切是否符合预期,您可以使用带有 dataHtml 值示例的在线工具(例如 http://www.regexr.com/)。

关于javascript - 在维护 HTML 的同时避免 JavaScript 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com