论坛: 原创软件 标题: 怎样实时的读取Session值?以及实时的修改? 复制本贴地址    
作者: yashika [yashika]    论坛用户   登录
如题。
没有关闭浏览器的时候修改,该怎么写?

地主 发表时间: 03/14 02:40

回复: wineggdrop [wineggdrop]   论坛用户   登录
根本不知道你说的是什么Session,先弄清楚你自己想问什么
再贴。Session翻译出来一般统称为会话,在网络上每一个连接
都几乎可以统称为Session,http连接,ftp连接,telnet连接.......
等。天知道你说的Session是什么。

B1层 发表时间: 03/14 16:05

回复: NetDemon [netdemon]   ADMIN   登录
他这里的Session意思为服务器端的cookies,就是把cookies保存在服务器上
但我还是无法回答你,因为不同的语言有不同的写法和实现方法,这个论坛用的就是有异于常规的自定义的Session

B2层 发表时间: 03/14 16:26

回复: yashika [yashika]   论坛用户   登录
能举两个例子吗?
我现能做的就是伪造本地Cookies,其实就是修改Http1.1但是不能够实时地读取浏览器生存期内
的Session甚至不知道该值的内存地址范围,我走访了很多网站,都没有
看到,请大哥赐教!小弟先谢谢了!

B3层 发表时间: 03/19 00:55

回复: NetDemon [netdemon]   ADMIN   登录
通过读取浏览器端的cookie得到sid,Session的保存并不一定是文件(通常是)可以是哈西表,mysql等等,这取决于服务器端的设置。其实你可以直接open(/tmp/xxxx/$sid)在任何时候修改。当然也可以通过,标准的接口修改
代码:

#!/usr/bin/perl
use CGI;
use Apache::Session::File;

my $query = new CGI;
my %session;
my $id = undef;

$id = $query->cookie(-name=>"SID01");

tie %session,'Apache::Session::File',$id,
      { Directory => "/tmp/",
      LockDirectory => "/tmp/"};

if ($id == undef) {
   $cookie = $query->cookie( -name=>'SID01',
         -value=>$session{_session_id},
         -expires=>'+1y',
         -path=>'/session');
   print $query->header(-cookie=>$cookie);
   print "Assigned session ID<br>n";
} else {
   print $query->header();
   print "Not assigned session ID<br>n";
};

if ($query->param()) {
   $session{"name"} = $query->param("name");
   $session{"address"} = $query->param("address");
   $session{"birthday"} = $query->param("birthday");
}

print "<html>n";
print " <head><title>Session info</title></head>n";
print " <body bgcolor=#ffffff>n";
print " <form action='/session/userinfo.cgi' method=post>n";
print " <b>Name: </b>";
print " <input type=text size=12 name='name' value='".$session{'name'}."'><br>n";
print " <b>Address: </b>";
print " <input type=text size=12 name='address' value='".$session{'address'}."'><br>n";
print " <b>Birthday: </b>";
print " <input type=text size=12 name='birthday' value='".$session{'birthday'}."'><br>n";
print " <input type=submit></form>n";
print " Your session ID is $idn";
print " </body>n";
print "</html>n"; 



这里我们先读取用户上次填写的表格内容并显示出来,而当用户按更新时,服务端的资料也就立即被更新

B4层 发表时间: 03/19 18:14

论坛: 原创软件

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号