黑帽联盟

 找回密码
 会员注册
查看: 1366|回复: 0

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

[复制链接]

908

主题

38

听众

3382

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    5 天前
  • 签到天数: 1704 天

    [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协议跨域


    您需要登录后才可以回帖 登录 | 会员注册

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