zoukankan      html  css  js  c++  java
  • 关于知道其他平台的用户名和密码,嵌入自己的系统直接连接过去

    1、先要分析对方系统是如何登录的,有的是通过表单提交用户名和密码,就直接进入到主页了,有的是通过接口登录,登录成功以后再重定向到主页;还有其他,这个直接连接到对方系统实现的复杂度跟目标系统有关。

    2、如果是表单方式提交,直接得到action地址和用户名密码name,直接写入<a>,<iframe>标签,进行尝试,有可能就直接链接过去了(只是可能),注意新版本谷歌的SameSite问题;

    3、如果是先通过接口登录,然后再重定向到主页,这个时候,在你自己的系统中进行模拟登录,然后重定向,可能成功,也可能失败,这个也是跟对方系统有关的,是否跨域问题。

    如果有跨域限制(跨域是浏览器的安全考虑,其实请求是成功了的,但是因为跨域,浏览器不会把这部分数据拿出来用而已),这个在前端好像不能解决,解决跨域主要是refer头,但是直接在ajax设置refer头,浏览器不认同你的修改;

    这个时候就考虑进行后端处理,搭建一个nginx服务,你所有的页面、接口请求都指向nginx,然后nginx进行分流,如果是你自己的系统路径,就往你自己的应用上分发,如果是目标系统的路径就往目标系统进行分发,这个时候,你的请求就不会出现跨域了,因为你所有的请求都是指向nginx;

    4、如果带有一些验证码之类的,暂时没考虑到;

    给一个demo的关键代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="./jquery.min.js"></script>
    </head>
    <body>
    
    <a href="javascript:void(0)" onclick="clickbtn()">跳转到xxl-job管理中心</a>
    
    </body>
    <script type="text/javascript">
    function clickbtn(){
        $.ajax({
            type: "post",
            url: "http://localhost/xxl-job-admin/login",
            dataType: "json",
            data: {
                userName: "admin",
                password: "xxxxxxxx"
            },
            success: function (data) {
                 window.location.href="http://localhost/xxl-job-admin/";
            },error:function(error){
                 console.log(error);
            }
        });
    }
    </script>
    </html>

    nginx.conf的配置片段

    		location / {
    			proxy_pass http://localhost:8080/; #自己系统地址
    		}
    		
    		location /xxl-job-admin/ {
    			proxy_pass http://10.xx.xx.xxx:8001/xxl-job-admin/; #目标系统地址
    		}

    nginx起搬运工的作用,它不会进行跨域验证。

  • 相关阅读:
    红黑树的修正过程
    配置文件elasticsearch.yml详解
    HEAD插件安装
    css reset.css
    vue-router之router-link
    vue2.0 代码功能片段
    vue2.0的常用功能简介
    electron 的中文文档的地址 以及 窗口改变的步骤
    ph 的使用步骤
    git 提交的步骤
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/12518341.html
Copyright © 2011-2022 走看看