看了一下cgi::session 和apache::session两个module,对session 了解得更多了,但是还是有很多迷惑的地方
1、他们都是使用md5来生成一个session id,并使用cookie发送给客户端,问题是这个session id应该可以很容易的拿到,如果有人假冒,服务器段没有什么好的办法去判断,在cgi::session里提供了一个-ip-match开关,但是在互联网上很多人都是通过防火墙来上网的,这也意味着多个客户端可能有同一个ip地址。不知道还有没有其他好的办法?
2、在客户端校验用户名和密码的时候,怎么才能让客户端发送的密码不出现在ie的地址栏里?有没有什么办法在客户端本地加密?在传送过程中我知道可以选择ssl
感谢各位的回答!
Qiang 回复于:2004-01-19 13:21:29
引用:原帖由 "iwanthome"]1、他们都是使用md5来生成一个session id,并使用cookie发送给客户端,问题是这个session id应该可以很容易的拿到,如果有人假冒,服务器段没有什么好的办法去判断 发表:
所以如果你对安全要求很高,就要用 SSL 来加密 server 和 用户端的数据传输。
否则其他人可以监听你的network ,来获得session id. 但如果你的 network 被监听,所有明文传输的密码都是可以获得。 session id 反而不是你首要考虑的了。话又说回来,如果你对安全要求很高,就要用 SSL 来加密 server 和 用户端的数据传输。
另外 md5 生成的 string 都是足够长(比如使用Digest::MD5 里的 md5_base64 生成 BS1+1ySMDuN+fqp7hnMRYw),几乎可以考虑不会有重复,如果去猜测一个 session id ,等猜到后,用户的 session 早已过期了。
安全的 session 该是综合 session id 的独特性,时效性两点,另外再加上 SSL. 普通的网站象论坛对安全性要求不高,所以没有 SSL 也无所谓。而象做网上交易的网站如 银行就一定要使用 SSL . 所以你就看到很多 https://
引用:原帖由 "iwanthome"]在cgi::session里提供了一个-ip-match开关,但是在互联网上很多人都是通过防火墙来上网的,这也意味着多个客户端可能有同一个ip地址 发表:
要知道使用 user agent , ip 等客户端的信息只是用来 _帮助_ 验证 session id, 正如你提到的这一点, 很多人通过防火墙来上网让使用 ip帮助验证 session id失去意义。 有利有弊。 所以在你使用类似的功能前,搞清可能面临的问题。
引用:原帖由 "iwanthome"]2、在客户端校验用户名和密码的时候,怎么才能让客户端发送的密码不出现在ie的地址栏里?有没有什么办法在客户端本地加密?在传送过程中我知道可以选择ssl 发表:
客户端发送的密码出现在ie的地址栏里? 你在做什么?
iwanthome 回复于:2004-01-19 14:17:43
客户端发送的密码出现在ie的地址栏里? 你在做什么?
我还没有真正去做这个东西,我只是想我的一个网页初始画面就是用户登陆画面,看了一下html的东西,好像密码是用input type = password来实现,问题是这个东西应该是在html 的post 里明码存放的吧?会不会就是这样的形式xxx.cgi?password=xxxx,我在网上的一些网站试着登陆了一下,好像在ie的地址栏里没有出现这样的东西,所以我想问一下他们是怎么实现的。
多谢!
Qiang 回复于:2004-01-19 15:46:08
post 的数据是不会显示在 url 里。
但传输的格式和 get 一样。你自己登录某个网站时运行监听的工具看一下就知道了。
建议你买本网络编程的书或到网上找找这些基础的知识的资料。
iwanthome 回复于:2004-01-19 15:58:38
非常感谢你的回答!
那你的意思是我使用post来传输用户名和密码就可以了?还有没有什么更安全的方法?
iwanthome 回复于:2004-01-19 16:13:37
我使用sniffer抓了一下包,确实是明码传输,是不是目前没有什么好的办法可以对用户的密码加密?ssl应该可以,还有别的吗?象网上银行这样的安全性较高的网站,好像都有一个本地保存的文件用于加密,不知道这个东西是怎么实现的。
另外我想问一下,如果要实现ssl,是否与perl没有什么关系,只需要客户端的浏览器和服务器的httpd软件支持就行了,是否我只需要配置几个参数就可以了,perl的编程应该没有什么特殊的地方吧?
感谢!
顺祝新年快乐!
lachance 回复于:2004-02-03 14:16:39
侠客们,能不能贴一段PERL中使用SESSION的小程序看看?????
这段时间要用到用户判断问题,但不知道怎么做,麻烦各位大侠!!!
deathcult 回复于:2004-02-13 14:07:55
perldoc CGI::Session
perldoc CGI::Session::CookBook
perldoc CGI::Session::Tutorial
|