绕过我自己计算机上的浏览器安全限制
Bypassing a browser security limitation on my own computer
我正试图通过维基百科中的前缀(en、fr、es…)创建一个语言方向列表(从左到右或从右到左。其他方向在维基百科中不存在)。为此,我编写了一个JS代码,可以在这个页面上执行,并将数据存储在一个变量中。该代码打开每个维基百科的主页,并试图根据其<html>
元素的"dir"属性检查语言的方向。然而,由于每个维基百科都有不同的域,出于安全原因,浏览器不允许我访问这些数据。有浏览器可以吗?是否可以更改我的偏好以启用它?
p.S.代码:
var as = document.querySelectorAll('a.extiw'), pre, win, dirByPre = {};
for each (var a in as)
if (pre = /^http:'/'/('w+)'.wikipedia'.org'/wiki'/$/.exec(a.href)) {
win = open(pre[0]);
win.onload = function () {
opener.dirByPre[pre[1]] = document.documentElement.dir;
close();
};
}
非常感谢!
您遇到的是Access Control Allow Origin错误。读一读,访问控制允许来源不允许。
一般来说,如果你想访问另一个页面的数据以在JS中使用,你需要在自己的服务器上访问,并将其传递给Javascript。
然而,在这种情况下,最好的解决方案是通过其API访问维基百科,并请求JSONP响应。记住,维基百科是建立在MediaWiki上的,所以请参阅其API文档http://www.mediawiki.org/wiki/API:Main_page.
title = "List_of_Wikipedias";
$.getJSON("http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles="+title+"&format=json&callback=?", function(data) {
console.log(data);
})
注意"format=json"answers"callback=?"
这种JSONP方法将适用于所有现代浏览器。
这在现代浏览器中通常是不允许的。当允许任意JavaScript访问其他域时,会存在许多安全问题。一个例子是XSS(跨站点脚本)。
如果你不想在浏览器内运行脚本,你要做的会容易得多。实际上,Python、Ruby或任何其他脚本语言都可以使用单个HTTP请求轻松地完成这项工作。如果你知道JavaScript,Node.JS怎么样?
这可能是一个奇怪的解决方案,但您可以编写一个浏览器扩展,允许您进行跨域请求。有一些简单的方法可以开发扩展,比如Crossrider,它有一个X-Domain插件,允许您通过Javascript进行跨域请求。
- 假设浏览器渲染为60 fps是否安全
- 绕过我自己计算机上的浏览器安全限制
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- AngularJS |刷新浏览器时,AngularJS模板会在安全上下文之前加载.如何阻止它
- 是否可以向用户发送javascript代码's浏览器安全
- 浏览器的本地存储有多安全
- 纹理未加载;浏览器报告同源安全错误
- 谷歌图书预览没有在安全的https上显示图书图像链接,但在http上工作.在Google Chrome和Touch浏览器
- 谷歌浏览器扩展程序制作中的内容安全政策错误
- 需要防止在 chrome 浏览器上显示“此页面包含不安全的内容”消息
- 在火狐浏览器中禁用 cookie 后,访问本地存储会导致安全错误
- 如何在浏览器 JS 控制台中包含脚本时覆盖内容安全策略
- 为什么浏览器扩展程序比纯基于 Web 的应用程序更安全
- 用户输入的javascript不如浏览器web开发工具安全
- 使用JS打开浏览器安全信息
- 来自第三方黑客的基于javascript浏览器的游戏有多安全
- 从Canvas生成图像,除Firefox外的所有浏览器都存在安全异常
- 浏览器安全策略如何使用XMLHttpRequest
- 在现代浏览器中,JavaScript bookmarklet是否存在任何安全限制
- HTML5桌面框架(宽松)浏览器安全