javascript - 防止通过 file_get_contents 执行 javascript

标签 javascript php security nginx

有没有办法配置 PHP/服务器(通过 Nginx php-fpm)以防止从 php file_get_contents 执行 javascript?

现在,如果我允许用​​户上传嵌入了 js 的 html 文件,当通过 file_get_contents() 调用显示文件时,JS 将被执行。

我计划添加 HTML 过滤(即拒绝 html 上传),但如果我可以在输出上有第二层安全性,而不是只在上传上(以防第一层无法接受),那就更好了帐户 so 场景)。

谢谢

最佳答案

感谢 jcubic 提供了解释为什么他的解决方案不起作用的链接 ;)

我只知道 2 个可靠的解决方案:

1) 使用 HTML 以外的标记语言,它具有可证明的语法并且不允许嵌入脚本(BBCode?)。这still requires that you validate the submission合规性 - 但比 HTML 更简单。

2) 应用 content security policy它不允许内联 javascript - 这将是我的首选解决方案,尤其是因为您可以指定报告 URL,从而允许您监管浏览器上发生的事情,而不是依赖服务器上的过滤。

关于javascript - 防止通过 file_get_contents 执行 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039477/

相关文章:

javascript - jQuery hoverintent 创建和删除元素

javascript - 在 Vue js 的 app.js 中 window.app=new Vue({}) 而不是 const app = new Vue({}) 有什么区别?

php - 网页设计;多个页面上的相同对象?

linux - 当满足某些条件时 Hook 到 linux 身份验证以运行脚本或程序

javascript - 在 IE6 中输入键不会提交表单

javascript - 相对定位元素原始位置的点击事件

javascript - JavaScript 中的重构模式

php - 将数组值与同一数组中的其他值进行比较

php - PHP//死亡白屏,报告所有错误

ASP.Net MVC cookies - 防篡改?