javascript - 加载脚本或图像标签后是否可以读取其内容?

标签 javascript html security

假设我有一个 <script>在我的 html 中添加一个标记,它会从源代码中加载一些脚本。是否可以以某种方式将此源作为字符串读取(无需直接对 src 执行相同的请求)?关键是要弄清楚是否存在一些需要解决的漏洞,因为例如脚本源可以是 3d 方 API,浏览器很乐意发送身份验证 cookie。

我认为这是不可能的,必须严格禁止,因为否则它可以被用于 CSRF 攻击,轻松窃取敏感数据,但只是想确定一下。

附注这同样适用于例如<img>标签等

最佳答案

这可以通过 XMLHttpRequest 完成:

window.addEventListener('DOMContentLoaded', function() {
    var xhr = new XMLHttpRequest();
    var url = 'http://localhost:8081/myscript.js';

    xhr.open('GET', url);

    xhr.onreadystatechange = function(response) {
        if(xhr.readyState === 4 && xhr.status === 200) {
            console.log(response.currentTarget.responseText);
        }
    };

    xhr.send();
});

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

关于javascript - 加载脚本或图像标签后是否可以读取其内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50049985/

相关文章:

javascript - 如何即时获取函数内的 id?

javascript - 移除/删除 HTML 页面中的 ":"冒号

html - 媒体查询不覆盖原始显示样式

java - 多线程环境下的 Shiro

ios - swift3 - 如何保护 key

security - Fiddler 是否为每台机器创建唯一的私有(private)根证书?

javascript - 当我的页面不活动时如何停止 jquery 动画

javascript - 比较javascript FormData对象

javascript - 下拉列表中的 HTML 循环选项值

html - 使下一个 html 元素在 z-index 中低于前一个