资讯专栏INFORMATION COLUMN

Jsonp&Cors跨域(同源策略、跨域、劫持漏洞)

joyqi / 2897人阅读

摘要:详细可阅读文章跨域的设置与获取该首部字段表明预检请求或实际请求的源站。其语法如下该首部字段用于预检请求。其作用是,将实际请求所携带的首部字段告诉服务器。

同源策略

同源策略 SOP(Same Origin Policy)是一种约定,他是浏览器最核心也最基本的安全功能,很大程序上防止了XSS、CSRF攻击

一个完整的uri分为以下几个部分,当请求的url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域(不同源),即使不同域名指向同一个IP也不可以

同源对比

Html 特殊标签如:

  • 在route目录下的route.php文件中添加路由

    Route::get("index/test", "index/test");

    我用的是phpstudy,我就直接启动服务了,访问相应目录

    test 接口将数据返回到前端

    在www目录下新建一个html来测试下同源策略

    <html>    <head>        <title>test pagetitle>        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js">script>		    head>        <body>    <script>        $.ajax({            type:"get",            url:"http://127.0.0.1/thinkphp/tp5/public/index.php/index/test",            dataType:"json",            success:function(response) {                console.log(response)            }        });    script>    body>html>

    发现可以成功取到返回的json数据,在同源策略的允许范围之内

    那么跨域可以将请求地址从 127.0.0.1 改成 localhost,不满足同源策略,再次访问url,发现出现很多报错

    跨域

    跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样(不同源)

    虽然在安全层面上同源限制是必要的,但有时同源策略会对我们的合理用途造成影响,为了避免开发的应用受到限制,有多种方式可以绕开同源策略

    • Jsonp
    • Proxy代理
    • CORS
    • Nginx反向代理
    • Websocket
    • postMessage

    Jsonp

    JSONP 本质上是利用

阅读需要支付1元查看
<