我正在构建的是简单的chrome扩展,它将我的脚本添加到用户访问的所有页面,如此
contentcript.js中的:
var s = document.createElement('script');
s.src = 'https://localhost:3000/js/hack.js';
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
在rails-backend上,通过devise
gem提供简单的登录密码和omniauth(oauth)授权。
如果我在rails页面上授权,稍后在hack.js
中授权,我尝试通过XMLHttpRequest
对我的本地服务器进行一些ajax调用 - 它会尽力向我保证用户未经授权。
我敢打赌,可以通过在某个地方打开隐形iframe来解决,但是那种hellova痛苦,可能会有一些更方便的方法吗?
答案 0 :(得分:1)
要执行授权请求,您可能必须在XHR中获取脚本,您可以在其中添加各种auth标头。然后,脚本可以是injected as inline code,而不是提供src
。
请注意,内容脚本可以为清单中包含host permissions的所有网站执行跨域XHR,即使不允许页面执行此操作也是如此。
由于网页的内容安全政策可能会禁止在src
中使用您的网址注入脚本,但将其作为内联脚本sort of bypasses CSP注入,因此它是一种更好的方法反正。