相关疑难解决方法(0)

同源策略和CORS(跨域资源共享)

我试图了解CORS.根据我的理解,它是一种在浏览器中实现的安全机制,以避免除了用户打开的域之外的任何ajax请求(在url中指定)

现在,由于这种限制,实施了许多CORS以使网站能够进行跨源请求.但根据我的理解,实施CORS违反了"同源政策" SOP的安全目的

CORS只是为了提供对请求服务器想要服务的额外控制.也许它可以避免垃圾邮件发送者

来自维基百科:

要启动跨源请求,浏览器会使用Origin HTTP标头发送请求.此标头的值是为页面提供服务的站点.例如,假设http://www.example-social-network.com上的页面 试图访问online-personal-calendar.com中的用户数据.如果用户的浏览器实现了CORS,则会发送以下请求标头:

来源:http://www.example-social-network.com

如果online-personal-calendar.com允许请求,它会在其响应中发送一个Access-Control-Allow-Origin标头.标头的值指示允许的源站点.例如,对先前请求的响应将包含以下内容:

Access-Control-Allow-Origin:http://www.example-social-network.com

如果服务器不允许跨源请求,则浏览器将向example-social-network.com页面而不是online-personal-calendar.com响应发送错误.

要允许访问所有页面,服务器可以发送以下响应头:

Access-Control-Allow-Origin:*

但是,这可能不适合担心安全问题的情况.

我在这里失踪了什么?CORS保护服务器与保护客户端安全的意图是什么.

ajax cross-domain cors

33
推荐指数
2
解决办法
1万
查看次数

无法使用http-server wiki示例

我使用AngularJs创建了一个web应用程序,用户可以.txt使用ng-file-upload将文件上传到服务器.

现在我想要一个简单的Node.js服务器来测试上传部分并观察页面中的进度条和错误消息的行为,但是对于Node.js和整个后端的工作原理知之甚少,我试着使用所提供的Node.js服务器ng-file-upload的非常维基.

我尝试进行一些更改,将我带到这个app.js文件:

var http = require('http')
  , util = require('util')
  , multiparty = require('multiparty')
  , PORT = process.env.PORT || 27372

var server = http.createServer(function(req, res) {
  if (req.url === '/') {
    res.writeHead(200, {'content-type': 'text/html'});
    res.end(
      '<form action="/upload" enctype="multipart/form-data" method="post">'+
      '<input type="text" name="title"><br>'+
      '<input type="file" name="upload" multiple="multiple"><br>'+
      '<input type="submit" value="Upload">'+
      '</form>'
    );
  } else if (req.url === '/upload') {
    var form = new multiparty.Form();

    form.parse(req, function(err, fields, files) …
Run Code Online (Sandbox Code Playgroud)

javascript http-headers node.js angularjs ng-file-upload

12
推荐指数
1
解决办法
1018
查看次数

使用RESTful服务保护跨域的API调用

我有一个预订网站,我向用户提供了几行代码,我在其中添加了API密钥div以及代码.用户需要在他们的网站中添加这些代码.然后我使用ajax调用从我的站点加载他们站点上的视图.我担心的是:如何使用公共和私有API密钥使用codeIgniter使用restful Web服务来保证这些调用的安全性?

我提供给用户的代码看起来像

    <link rel="stylesheet" type="text/css" href="http://localhost/bookingpoints_com/apiTesting/styles/first.css" />
    <script src="http://localhost/bookingpoints_com/contents/scripts/jquery.js" ></script>
    <script src="http://localhost/bookingpoints_com/contents/scripts/apiused.js" ></script>
    <script src="http://localhost/bookingpoints_com/apiTesting/scripts/common.js" ></script>         
    <div id="api-data-reserve" name="Njc4ZDI5ZDZiN2RlYzIxMzM1N2U3ZWRkOGEwYjhlNThhZmZiNDNjNXRlc3QgY29kZTE=" data="Njc4ZDI5ZDZiN2RlYzIxMzM1N2U3ZWRkOGEwYjhlNThhZmZiNDNjNW1HVnZ3YVhMRVc=" sitekey="Njc4ZDI5ZDZiN2RlYzIxMzM1N2U3ZWRkOGEwYjhlNThhZmZiNDNjNQ=="></div>
Run Code Online (Sandbox Code Playgroud)

通过这些代码行,我对我的站点进行了ajax调用,并在用户站点上呈现视图.如何使用纯API架构使用restful服务进行身份验证,使其像google的客户端和密钥结构一样工作?

php api ajax rest codeigniter

8
推荐指数
1
解决办法
922
查看次数

关于客户端安全性,CORS除了颠覆同源策略外还做了什么吗?

(如果没有,它是否真的能提高客户端的安全性?)

我正在考虑服务器X的脚本使用XHR从服务器Y(支持CORS)获取和运行不受信任的代码的情况.

(显然评估不受信任的代码是坏的)

javascript ajax xmlhttprequest same-origin-policy cors

6
推荐指数
2
解决办法
2348
查看次数

CORS如何比没有跨域限制更安全?在我看来,它可以被恶意使用

我已经对解决跨域策略做了一些阅读,现在我已经知道了两种对我有用的方法,但我很难理解CORS如何比没有跨域限制更安全.

据我所知,跨域限制已经到位,因为理论上可以将恶意脚本插入到用户正在查看的页面中,这可能导致数据发送到未关联的服务器(即不是同一个域)到用户已专门加载的站点.

现在有了CORS功能,恶意家伙似乎可以解决这个问题,因为它是允许跨域请求授权的恶意服务器本身.因此,如果恶意脚本决定向已Access-Control-Allow-Origin: *设置的恶意服务器发送详细信息,它现在可以接收该数据.

我确定我在这里误解了一些东西,任何人都可以澄清一下吗?

security ajax xmlhttprequest cross-domain cors

5
推荐指数
1
解决办法
813
查看次数