- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
-6ren"> -好的,我从用户输入中得到了如下所示的内容,已知 不会在 document.write() 函数中工作 document.write(""); 有没有办法替换 至 在 document.write() -6ren">
好的,我从用户输入中得到了如下所示的内容,已知 </script>
不会在 document.write() 函数中工作
<script type="text/javascript">document.write("<script type='text/javascript' src='"+(location.protocol == 'https:' ? 'https:' : 'http:') + "//www.domain.com/script.js'></script>");</script>
有没有办法替换 </script>
至 </scr"+"ipt>
在 document.write() 函数中?
最佳答案
Is there anyway to replace the
</script>
to</scr"+"ipt>
inside document.write() function?
没有。
字符序列</script>
在它到达 JavaScript 解析器之前就被 HTML 解析器解析为结束标记。
您必须在将源代码发送到浏览器之前对其进行编辑。
也就是说,有比查找 location.protocol
更好的方法来解决问题反正。改用方案相对 URI:
<script src="//www.example.com/script.js'></script>
或者将 HTML 文档的所有 HTTP 流量重定向到 HTTPS,这样您就永远不会在不安全的连接上提供服务。
您的评论表明您应该提出的问题是:
How can I place arbitrary submitted form data into a JavaScript string literal using PHP?
使用 json_encode
功能。如果你给它传递一个字符串,它会给你一个适合插入 <script>
的 JavaScript 转义字符串。元素。 (但它不会是有效的 JSON 文本,因为它必须在最外层有一个对象或数组)。
<script>
document.write(<?php echo json_encode($_POST['script']); ?>);
</script>
严重安全警告:请勿在未实现 protection from CSRF attacks 的情况下执行此操作因为允许第三方导致您的用户向您的网站提交 JavaScript 可能是一个主要问题。
关于php - 如何将 </script> 替换为 </scr"+"ipt>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16770823/
我是一名优秀的程序员,十分优秀!