irm*_*eza 1 javascript security jquery google-chrome-extension
如您所知,当将$ .ajax(..)请求发送到另一个域(跨域)时,大多数浏览器会抛出异常,例如:
XMLHttpRequest cannot load http://mysite.com/test.php. Origin
http://127.0.0.1:8888 is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)
我正在创建chrome扩展,它应该向我的网站发送请求.首先,我也希望看到上述信息.但是当我看到它工作正常时我很困惑.
首先,它似乎很好,它正在工作,我有我想要的东西.但它可能很糟糕.每个人都可以使用这种方式(只有一个简单的脚本)来攻击我的网站并获取其数据.
当然,抓取也可能以其他方式发生.我是api编程和chrome扩展的新手.有人可以指路吗?
的manifest.json
{
"manifest_version": 2,
"name": "MyTestExtension",
"description": "this extension is for test",
"version": "1.0",
"icons": {
"128": "icon.png"
},
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"tabs" ,
"*://*/*"
],
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["jquery-1.7.2.min.js","content_script.js"],
"run_at": "document_end"
}
]
}
Run Code Online (Sandbox Code Playgroud)
content_script.js
$(document).ready(function(){
$('html').mouseup(function() {
var selectedText = getSelectedText();
if(selectedText > ''){
my_syncTest(selectedText) // here : selected test send to my site
}
});
function getSelectedText() {
if (window.getSelection) {
var selection = window.getSelection().toString();
if(selection.trim() > ''){
return selection;
}
} else if (document.selection) {
var selection = document.selection.createRange().text;
if(selection.trim() > ''){
return selection;
}
}
return '';
} });
function my_syncTest(word){
var qs = 'word='+word+'&header=555&simwords=1';
$.ajax(
{
type: "POST",
url: 'http://mysite.com/test.php',
dataType: 'json',
data : qs,
success:function(res){
console.log(res.success +" - "+ res.idWord + " - " + res.header +" - " + res.meaning);
}});
}
Run Code Online (Sandbox Code Playgroud)
扩展中的XMLHttpRequests工作,因为您在清单中定义了这些权限:
"permissions": [
"*://*/*"
]
Run Code Online (Sandbox Code Playgroud)
当用户安装您的分机时,他会被告知此分机可以访问所有站点上的数据.我更喜欢只包含您需要的确切网站而不是通配符.
http://developer.chrome.com/extensions/xhr.html
此机制用于保护用户,而不是保护您的站点.如果您不希望每个人都使用您的API,请使用API密钥,或查看oAuth:
http://en.wikipedia.org/wiki/OAuth
如果您想了解有关跨源请求的更多信息:
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
| 归档时间: |
|
| 查看次数: |
8340 次 |
| 最近记录: |