nic*_*orm 52 security cross-site web
从我的角度来看,称为跨源资源共享(CORS)和内容安全策略(CSP)的技术在目的和实现方面似乎非常相似.
两者似乎都允许您通过HTTP响应标头将您网页的不妥协版本所包含的资源来源列入白名单.我能看到的唯一区别是,在您的HTTP响应中,CSP似乎更精细.
Sil*_*Fox 62
CORS允许为域放宽同源策略.
例如,通常,如果用户登录到两个example.com和example.org,同源策略防止example.com从制造AJAX请求example.org/current_user/full_user_details并获得对响应.
这是Web的默认策略,可防止用户同时登录多个站点时泄露数据.
现在使用CORS,example.org可以设置一个策略,说它将允许原点https://example.com读取AJAX做出的响应.这如果同时进行example.com,并example.org通过同一家公司和起源之间的数据共享是在用户的浏览器被允许的跑了.它只影响客户端,而不是服务器端.
另一方面,CSP设置了可以在当前站点上运行的内容的策略.例如,如果JavaScript可以内联执行,或者.js可以从哪些域文件加载.这可以有效地作为抵御XSS攻击的另一道防线,攻击者将尝试将脚本注入HTML页面.通常输出会被编码,但是说开发人员只忘记了一个输出字段.由于该策略阻止了内联脚本的执行,因此攻击被挫败.
Que*_*tin 47
CORS允许站点A向站点B授予从站点A读取(可能是私有的)数据的权限(使用访问者的浏览器和凭证).
CSP允许站点阻止自己从意外来源加载(可能是恶意的)内容(例如,作为对XSS的防御).
par*_*ite 18
上述答案都没有给出CSP和CORS之间明确而简洁的区别.这是我思考它们的方式:
假设我们有想要向def.net发送请求的abc.com网站.
所以CSP 在上面的例子中保护abc.com和CORS保护def.net.