(java 或 php)http-get 或 http-post 会话保持,session 验证原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qilin001cs/article/details/83214604

一直以来以为http-get或 http-post 进行session请求,通常都会被拦截到login,而无法跳过验证!

今天又仔细阅读了“session验证的基本原理” ,才知道原来是可以进行数据交互的,http请求示如下图所示:

用户登录以后,浏览器把用户名和密码提交到服务器进行校验,校验通过以后服务器会记录key->value的sessionid的记录mapping,同时浏览器会把sessionid记录到cookie中,以后所有本域名下的请求都带有该cookie 进行数据请求和登录验证,所以要垮浏览器或者垮客户端进行会话(session)保持则只需要加入cookie的验证sessionid值,即可~

o(︶︿︶)o 唉,基础知识很重要啊!

java 会话保持代码:

public class SessionGetInfo {
    //login sessionid cookie
    private static String cookie ="acw_tc=65c86a0c15390488435707740e37f71e9b554877da49da16f26c522bb9a76c; UM_distinctid=16689e05f954a-092d016c07e82d-454c092b-1fa400-16689e05f96270; JSESSIONID=F87E3D205CA534A31DB9EC0F17E026D6.jboss1; Hm_lvt_ef045bf50b01b351e1c52c334e160018=1539911479,1540001575,1540002882; token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxODY2MzEzMDYxNyIsImlhdCI6MTU0MDAwMjg4M30.bu2uqoDmOYyZh8OsrRQwWOTu01EbS8HxHRDISC5EOrfhQ37cS6RRxxPK4snU2JOIa-ns1fkgVbd3zv8m_nlj0w; Hm_lpvt_ef045bf50b01b351e1c52c334e160018=1540018627; CNZZDATA1260621316=910909643-1539911882-http%253A%252F%252Fapp.farmeasy.cn%252F%7C1540021991; SERVERID=e04a2a53c7a419899c5082cd401e516d|1540023544|1540002878";
    //verified URL
    private static String url ="http://app.cc.com?f=1&e=&d=0&s=-1";
    //get html
    public static void reqInfo(){
        try {
            String content = Request.Get(url)
                    .addHeader("Accept","*/*")
                    .addHeader("Cache-Control","max-age=0")
                    .addHeader("Connection","keep-alive")
                    .addHeader("Cookie",cookie)
                    .addHeader("Host","app.cc.com")
                    .addHeader("Upgrade-Insecure-Requests","1")
                    .version(HttpVersion.HTTP_1_1).execute().returnContent().asString();
             getUrls(content);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //parse html get a tag href
    public static void getUrls(String html){
        System.out.println(html);
    }
    //main
    public static void main(String args[]){
        reqInfo();
    }
}

php 会话保持代码:

<?php

//login sessionid cookie
$cookie="acw_tc=65c86a0c15390488435707740e37f71e9b554877da49da16f26c522bb9a76c; UM_distinctid=16689e05f954a-092d016c07e82d-454c092b-1fa400-16689e05f96270; JSESSIONID=F87E3D205CA534A31DB9EC0F17E026D6.jboss1; Hm_lvt_ef045bf50b01b351e1c52c334e160018=1539911479,1540001575,1540002882; token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxODY2MzEzMDYxNyIsImlhdCI6MTU0MDAwMjg4M30.bu2uqoDmOYyZh8OsrRQwWOTu01EbS8HxHRDISC5EOrfhQ37cS6RRxxPK4snU2JOIa-ns1fkgVbd3zv8m_nlj0w; Hm_lpvt_ef045bf50b01b351e1c52c334e160018=1540018627; CNZZDATA1260621316=910909643-1539911882-http%253A%252F%252Fapp.farmeasy.cn%252F%7C1540021991; SERVERID=e04a2a53c7a419899c5082cd401e516d|1540023544|1540002878";
//verified URL
$url="http://app.cc.com?f=1&e=&d=0&s=-1";
//request method
function reqInfo(){
	$opts = array(
		'http' => array(
			'method' => 'GET', 
			'header' => 'Content-type: application/x-www-form-urlencodedrn' ,
			'cookie' => $cookie
		)
	);
	$context = stream_context_create($opts);
	$html = file_get_contents($url, false, $context);
	echo $html;
}
//request
reqInfo();

猜你喜欢

转载自blog.csdn.net/qilin001cs/article/details/83214604
今日推荐