我正在尝试要求一个使用 header 身份验证系统进行防火墙保护的脚本,并试图找到绕过它的方法。
到目前为止,很明显您不能将自定义 header 添加到脚本标记本身,但我已经看到一些关于在请求之前或在服务器端自定义页面 header 的内容。
到目前为止,我还不能说我看到了任何可靠的答案。
最佳答案
您可以通过 xhr 和页面内的 eval()
加载它。例如对于 jQuery,您可以使用:
http://api.jquery.com/jquery.ajax/ - 查看 beforeSend
设置标题;使用它来检索文件内容。
然后使用https://api.jquery.com/jquery.globaleval/ globalEval()
评估获取的页内内容。
您可以使用 vanilla HttpRequest
和 eval()
实现相同的效果,但我总是懒得那样做。或者也许不是......我刚刚在我正在工作的项目中找到了一段代码:
var evalScript = function(e) {
var h = evalScript.node,
s = document.createElement("script");
s.type = "text/javascript";
s.text = e;
h.appendChild(s);
h.removeChild(s);
};
evalScript.node = document.getElementsByTagName("head")[0] || document.getElementsByTagName("*")[0];
// TODO: make async
function loadJs(js) {
var req = new XMLHttpRequest();
req.open("GET", js, false);
req.send(null);
evalScript(req.responseText);
}
只需向其中添加 header 即可。
关于html <script> 标签标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508363/