免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3315 | 回复: 3
打印 上一主题 下一主题

cookie是否被perl加密了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-06-20 22:45 |只看该作者 |倒序浏览
我在网上找了个登录网站的代码,试着执行,返回信息中有:
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 19-Jun-2017 13:47:41 GMT
但是我打开lwp_cookies.txt文件是如下信息:
#LWP-Cookies-1.0
Set-Cookie3: ZJZCJSESSIONID=ed169a6b-b711-49e8-be3b-2a44df845199; path="/"; domain=wenjinbao.winfae.com; path_spec; secure; discard; HttpOnly; version=0
那么
ZJZCJSESSIONID=ed169a6b-b711-49e8-be3b-2a44df845199
是rememberMe=deleteMe 加密后形式吗?
是perl 加密的吗?
谢谢!

论坛徽章:
0
2 [报告]
发表于 2017-06-21 05:50 来自手机 |只看该作者
应该不是,看看还有没有其它cookie文件,ssionid像是服务器端的标志号。其它项目不是也没完全对上么

论坛徽章:
0
3 [报告]
发表于 2017-06-21 12:40 |只看该作者
网上的代码来自:
http://blog.csdn.net/zhaoyangjian724/article/details/51790133
我注册了一个临时用户名测试用,登录时会返回一个图片验证码,在DOS中输入。由于没有申请交易密码,最后的交易登录不能进行,这里不关心。
我这里关心的是1楼cookie问题:
Set-Cookie会出现在DOS的222222222222222上一行,
lwp_cookies222.txt名是任意指定的,其内容与DOS中的返回内容不一致。
  1. use Net::SMTP;
  2. use LWP::UserAgent;
  3. use HTTP::Cookies;
  4. use HTTP::Headers;
  5. use HTTP::Response;
  6. use Encode;
  7. use Switch;
  8. use File::Temp qw/tempfile/;
  9. use HTTP::Date qw(time2iso str2time time2iso time2isoz);

  10. open out,">respcontent.html";

  11. my $CurrTime = time2iso(time());
  12. my $ua = LWP::UserAgent->new;
  13. $ua->timeout(10);
  14. $ua->env_proxy;
  15. my $now          = time();
  16. $ua->agent('Mozilla/5.0');
  17. my $cookie_jar = HTTP::Cookies->new(

  18.     file           => 'lwp_cookies222.txt',
  19.     autosave       => 1,
  20.     ignore_discard => 1
  21. );

  22. $ua->cookie_jar($cookie_jar);

  23. if ($cookie_jar)
  24. {
  25.                 $cookie_jar->load( $cookie_jar );
  26.                 my $now  = time();
  27.                 my $url="https://wenjinbao.winfae.com/web/auth?method=%2Fwze%2Ftransfer%2Fcash%2Fin&amount=0.1&tradePassword=79e8fe923f031f46221a9283d0c9263a&_=$now";
  28.                 my $response = $ua->get("$url");
  29.                 if ($response->is_success)
  30.                 {
  31.                                 #print $response->content;
  32.                                 $r = $response->content;       
  33.                                 $str=encode("gbk",decode("utf8","$r"));
  34.                                 print "\$str is $str\n";       
  35.                
  36.                
  37.                                 if ($str =~/用户未登录/)
  38.                                 {
  39.                                     my $response = $ua->get("https://wenjinbao.winfae.com/validcode/generate-validcode.do?$str");
  40.                                                 if ($response->is_success) {
  41.                                                   $r = $response->decoded_content;   
  42.                                                   #print $response->decoded_content;  # or whatever
  43.                                                 }else
  44.                                                 {
  45.                                                  die $response->status_line;
  46.                                                 };
  47.                                
  48.                                                 my ( $fh, $filename ) =
  49.                                                   tempfile( "wj_qrcode_XXXX", SUFFIX => ".jpg", DIR => 'd:\\' );
  50.                                                   
  51.                                                 binmode $fh;
  52.                                                 print $fh $r;
  53.                                                 close $fh;
  54.                                                 print "登录二维码已经下载到本地 [ $filename ] \n";
  55.                                                
  56.                                                 ##打开图片
  57.                                                 system("start $filename ");
  58.                                                
  59.                                                 my $validCode = <STDIN>;#图片验证码
  60.                                                 chomp $validCode ;
  61.                                                 print "\$validCode is $validCode\n";
  62.                                                
  63.                                                 #my $url="https://wenjinbao.winfae.com/business/dispatch_post.do";
  64.                                                
  65.                                                  my $login_url = 'https://wenjinbao.winfae.com/business/dispatch_post.do';
  66.                                                                 
  67.                                                  my $res = $ua->post($login_url,{
  68.                                                                                'action'=>'doLogin',
  69.                                                                           'userName'=>'hztj2005',#'userName'=>'18072722237'
  70.                                                                                                               'followId'=>'',
  71.                                                                           'userPass'=>'55073332xyz',
  72.                                                                           'validCode'=> "$validCode"
  73.                                                                                 }
  74.                                                                    );
  75.                                                 print "---------------\n";
  76.                                                
  77.                                                 my $head =$res->header('Location');       
  78.                                                                                
  79.                                                 print $res->header('Location');       
  80.                                                 print "\n";       
  81.                                                
  82.                                                                                        
  83.                                                 print $res->status_line."\n";
  84.                                                 print "11111111111111111111\n";
  85.                                                 print $res->as_string();#获取的是原始内容,包括响应头,响应正文
  86.                                                 print "22222222222222222222\n";
  87.                                                 my $content=$res->content();  #获取的是响应正文
  88.                                                 my $spool = encode("gbk",decode("utf8","$content"));       
  89.                                                 print "\$spool is $spool\n";
  90.                                                 print "\n";
  91.                                                 print "3333333333333333333\n";
  92.                                                
  93.                                                 my $response = $ua->get("$head");
  94.                                                 if ($response->is_success)
  95.                                                 {
  96.                                                                 #print $response->content;
  97.                                                                 $r = $response->content;       
  98.                                                                 print out $response->content;#内容是登录表格
  99.                                                                                                                        
  100.                                                                 #$str=encode("gbk",decode("utf8","$r"));
  101.                                                                 #print "\$str is $str\n";
  102.                                                                
  103.                                                                 print "4444444444444444444\n";
  104.                                                                 my $now  = time();
  105.                                                                 my $url="https://wenjinbao.winfae.com/web/auth?method=%2Fwze%2Ftransfer%2Fcash%2Fin&amount=0.1&tradePassword=79e8fe923f031f46221a9283d0c9263a&_=$now";
  106.                                                                 #my $url="https://wenjinbao.winfae.com/web/auth?method=/wze/transfer/cash/in
  107.                                                                 #&amount=0.1   #可能是一个很小的测试值
  108.                                                                 #&tradePassword=79e8fe923f031f46221a9283d0c9263a  #交易密码
  109.                                                                 #&_=$now";
  110.                                                                
  111.                                                                 my $response = $ua->get("$url");
  112.                                                                 if ($response->is_success)
  113.                                                                 {
  114.                                                                   #print $response->content;
  115.                                                                   $r = $response->content;                                                                
  116.                                                                   $str=encode("gbk",decode("utf8","$r"));
  117.                                                                   print "\$str is $str\n";
  118.                                                       print "555555555555555555\n";
  119.                                                    }else
  120.                                                    {
  121.                                                              $r = $response->content;  
  122.                                                       print $response->content;
  123.                                                       print "6666666666666666666\n";
  124.                                                    }
  125.                                        
  126.                                     }
  127.                                
  128.                                 };
  129.                 };
  130.                
  131. }else
  132. {
  133.        
  134.    print "no cookie\n";       

  135. };                       

  136. _END_
  137.                                 

复制代码



论坛徽章:
0
4 [报告]
发表于 2017-06-29 15:46 |只看该作者
回复 1# hztj2005

没有加密, 就算加密也不是perl(LWP)做的,那个什么ZJZCJSESSIONID大概就是一个随机的值,
一般确保在一段时间内维持你在网站的登陆状态.

通俗的说就是你成功登陆网站的时候, 网站后台自动选择/计算出一个这样的随机字符串作为sessionid,
保存在服务器上(数据库/文件/内存等中)并通过cookie传递给浏览器,
那么浏览器每次发送新的请求到该网站时候cookie中都会自动附带这个sessionid,
网站通过对比浏览器送出的cookie和服务器上的sessionid就能知道你的账号和是否登陆了.

事实上也并不一定用来表示登陆状态, 也可以用来存储一些临时的选项.

评分

参与人数 1信誉积分 +10 收起 理由
hztj2005 + 10 赞一个!

查看全部评分

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP