黑帽联盟

 找回密码
 会员注册
查看: 218|回复: 0
打印 上一主题 下一主题

[安全教程] nginx跨域定义、原因,解决方案

[复制链接]

895

主题

38

听众

3329

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 22:31
  • 签到天数: 1652 天

    [LV.Master]伴坛终老

    一、nginx跨域
    1 . 什么是跨域?


    跨源资源共享(CORS)是一种机制,它使用额外的HTTP标头让用户代理获得访问来自不同来域的服务器上选定资源的权限,而不是使用当前正在使用的站点。用户代理在请求来自与当前文档不同的域,协议或端口的资源时,会发出跨源HTTP请求。
    21.png


    2 . 产生跨域的原因?


    1、出于安全原因,浏览器限制从脚本内发起的跨域HTTP请求。例如,XMLHttpRequest与提取API遵循同域策略。这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非使用CORS头文件。
    2、浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源
    3、同ip (或domain),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略
    4、现代浏览器在安全性和可用性之间选择了一个平衡点。在遵循同源策略的基础上,选择性地为同源策略“开放了后门”。例如img script style等标签,都允许垮域引用资源,然而,你也只能是引用这些资源而已,并不能读取这些资源的内容


    浏览器处于安全考虑,会通过同源策略禁止网页发起跨域的http请求。
    同源策略: URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示它们同源。


    3 . 同域策略的限制


    Cookie,LocalStorage和IndexDB无法读取
    DOM和js对象无法获取
    AJAX请求无法发送


    4 . 常见的跨域场景
    22.png

    5 . 跨域的解决方案


    通过jsonp跨域
    document.domain + iframe跨域
    location.hash + iframe
    window.name + iframe跨域
    postMessage跨域
    跨域资源共享(CORS)
    nginx代理跨域
    nodejs中间件代理跨域
    WebSocket协议跨域


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部