Javascript 了解AJAX CORS和安全注意事项
我试图理解为什么CORS是以这种方式工作的 正如我从中了解到的,当来自www.a.com的页面向www.b.com发出AJAX请求时,决定是否允许请求的是www.b.com 但在这种模型中,客户机上的安全性到底是什么? 例如,如果黑客成功向我的页面注入XSS脚本,那么它会向他的域发出AJAX请求以存储用户数据。所以黑客的域名肯定会允许这样的请求 我认为www.a.com应该决定允许请求访问哪些域。因此,从理论上讲,在一个header中,我想列出允许AJAX CORS请求的所有域的列表 有人能解释一下当前CORS实现所处理的安全问题吗 正如我从这篇文章中了解到的,当Javascript 了解AJAX CORS和安全注意事项,javascript,ajax,cross-domain,cors,Javascript,Ajax,Cross Domain,Cors,我试图理解为什么CORS是以这种方式工作的 正如我从中了解到的,当来自www.a.com的页面向www.b.com发出AJAX请求时,决定是否允许请求的是www.b.com 但在这种模型中,客户机上的安全性到底是什么? 例如,如果黑客成功向我的页面注入XSS脚本,那么它会向他的域发出AJAX请求以存储用户数据。所以黑客的域名肯定会允许这样的请求 我认为www.a.com应该决定允许请求访问哪些域。因此,从理论上讲,在一个header中,我想列出允许AJAX CORS请求的所有域的列表 有人能解释
www.a.com
的页面向www.b.com
发出AJAX请求时,决定是否允许请求的是www.b.com
不完全是。请求未被阻止(至少,如果被阻止的话)
默认情况下,运行在www.a.com
上的JavaScript被禁止从www.b.com
访问响应
CORS允许www.b.com
向www.a.com
上的JavaScript授予访问响应的权限
但在这种模型中,客户机上的安全性到底是什么
它阻止www.a.com
的作者使用访问过这两个站点并在www.b.com
上经过身份验证的用户的浏览器从www.b.com
读取数据(因此可以访问非公开的数据)
例如,Alice登录到Google。Alice访问了恶意。示例
,它使用XMLHttpRequest从gmail.com
访问数据。Alice有一个GMail帐户,因此回复的收件箱中有一个最新电子邮件的列表。同源策略可防止恶意。例如
读取它
例如,黑客成功地将XSS脚本注入到我的页面,然后它向他的域发出AJAX请求以存储用户数据。所以黑客域名肯定会允许这样的请求
对。XSS是一个不同的安全问题,需要在源代码处解决(即在www.a.com
而不是在浏览器中解决)。此外,还有另一种称为的技术,它描述了您所追求的目标
我认为www.a.com应该决定允许请求访问哪些域。因此,从理论上讲,在头访问控制Allow Origin中,我想列出允许AJAX CORS请求的所有域的列表
使用CSP,您可以从您的域中设置一个头(示例中为www.a.com
),以限制AJAX请求:
connect src限制您可以连接的源(通过XHR、WebSocket和EventSource)
因此,要使用它,您可以将此内容安全策略
HTTP头添加到HTML响应中:
Content-Security-Policy: connect-src 'self'
这将把AJAX请求限制在www.a.com
上,如果该头出现在www.a.com
的响应中:
“self”匹配当前源,但不匹配其子域
对于支持的浏览器。是的,没错,提供数据的域(saas)可以列出其“允许”的域。(ACAO)之后,SaaS有责任确保请求安全(通过常规的“web服务器”手段-字符串清理、捕获DSA等)