在cgi中实现session的想法和实现

在cgi中实现session的想法和实现

ID:22327723

大小:71.50 KB

页数:6页

时间:2018-10-28

在cgi中实现session的想法和实现_第1页
在cgi中实现session的想法和实现_第2页
在cgi中实现session的想法和实现_第3页
在cgi中实现session的想法和实现_第4页
在cgi中实现session的想法和实现_第5页
资源描述:

《在cgi中实现session的想法和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在CGI中实现session的想法和实现>>教育资源库对于客户端的每一次登陆,在服务器生成一个session,作为一个文件存储在服务器上,例如在“/tmp”下。文件命名为sess_开头,在加上一个随机的字符串,这个字符串称之为session_id。在文件中存储的内容包括:1、用户的最后一次活动时间。(用来检查用户是否长时间没有操作,视为已经退出登陆)。2、一个随机的字符串。(用来验证客户端的身份,这个字符串同时作为cookie发往客户端)。3、客户端的IP.4、实际要存储的数据。例如用户的ID,密码等。在用户登陆时,生成这个文件,并且,将那个随机字符串发到客户端的cookie.在以后的每个

2、页面的超连接,或是FORM中的要跟入session_id.每个页面开始,要:1、检查是否超时。2、对比cookie中的字符串和session文件中的,验证客户身份。3、对比客户端IP和session文件中的IP,验证客户身份。4、读出数据,供下面程序使用5、刷新最后活动时间6、生成新的随机字符串,刷新session中对应部分,并将其作为cookie发往客户端。因为我正在做的项目要求比较高的安全性,所以我在这方面考虑的比较多些,但我知道这样肯定还不是完全安全的。如果谁发现了什么漏洞,麻烦告诉我。下面是我的部分实现代码:set_session()在登陆是调用。start_session()在每

3、个页面的前面调用。kill_session()在退出登陆是调用。clean_session()用来删除过期的session文件。#include<stdio.h>#include<stdlib.h>#include<time.h>#include<unistd.h>#include<sys/types.h>#include<sys/stat.h>#include<ftl.h>#include<dirent.h>#defineREMOTE_ADDR1getenv("REMOTE_ADDR")#de

4、fineHTTP_COOKIEgetenv("HTTP_COOKIE")char*sess_user_name;char*sess_user_pe,char*pe_tnop,r;time(noeoutsessionfile*/clean_session_file();/***getstr_nohash_key*/srand(noorerandomsession_id;*/temp=rand();srand(temp);&nb12345下一页>>>>这篇文章来自..,。sp;r=rand();session_id=(char*)malloc(17*sizeof(char));for(i=0;

5、i<16;i++){srand(r);r=rand();session_id[i]=r%26+’A’;}session_id[16]=’’;/***createsessionfile*/strcpy(sfp,"/tmp");strcat(sfp,"/sess_");strcat(sfp,session_id);sf=fopen(sfp,"od(sfp,06777);if(sf==NULL){tc_error_page("can’tcreatsessionfile");}/***fputssessionfile*/fputs(str_noe,sf);//sess_user_name

6、fputs("",sf);fputs(pe_tnop[64];charstr_time[16];charstr_hash_key[20];charstr_client_ip[20];char*str_array[6];sess_user_name=(char*)malloc(32*sizeof(char));sess_user_palloc(32*sizeof(char));str_array[0]=str_time;str_array[1]=str_hash_key;str_array[2]=str_client_ip;str_array[3]=sess_user_name;str_

7、array[4]=sess_user_pp");strcat(sfp,"/sess_");strcat(sfp,session_id);sf=fopen(sfp上一页12345下一页>>>>这篇文章来自..,。,"rb+");if(sf==NULL)/**can’topensessionfile,maybesessionhastimeout**/{print_session_error("1");exit(1);}/**

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。