session的使用原则参考模板_第1页
session的使用原则参考模板_第2页
session的使用原则参考模板_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、session的使用原则(摘抄) 在什么时候传递session?    Session 的作用相当大,它的最主要作用就是可以针对某一个用户的特殊的连接,建立一个私人的变量,并且这个变量可以在不同的页面之间进行传递。除非用户在20分钟(或由用服务器设定的时间)内没有点击任何页面,否则这个变量会一直保留下去。这是一个很有用的功能,同时也是一个很占用服务器资源的功能。    很有用体现在:1)它可以自动的进行页面间的参数传递。不需要表单传递、不需要超链接传递,只需要在后台传递。2)而且设了一次session之后,就可以在

2、每一个页面使用,非常方便。    很麻烦体现在:1)如果网站很大,一不小心设了两个同名的session,就会造成错误,尤其是象session(“id”)这类变量,很容易出错。2)session会占用系统资源,而且在20分钟内没有连接的情况下才会自动消失。所以一旦大量使用,将会对系统造成严重影响。如何使用session?    1)对于会员登陆如何使用session?    在会员登陆中,一定需要用到session来判断这个会员的状态:未登陆还是已经登陆?虽然我们可以在数据库中

3、设置一个字段,用来存储是否登陆的信息,然后在登陆的每一个界面中读取数据库,从而分别针对已登陆和未登陆两种情况做出判断,进行不同得显示。但这种方法效率太低,要经常调用数据库,耗用大量资源,不建议采用。使用session就不同了。只要会员一经登陆,就设立一个session变量,记录这个用户的id号,即:session(“id”)。在其他页面中通过对session(“id”)是否为空进行判断,从而决定用户是否登陆。    但这种方法需要注意一个问题,那就是:session变量用得越少越好。用很多session当然会很方便,但同时占用系统资源。我建议,只设置se

4、ssion(“user_id”),如果有权限的要求,最好加上一个session(“user_auth”)。其他不用设置。有的人喜欢设置 session(“password”),这并不是一个很好的习惯。为什么?因为,一般的会员系统,都会允许会员对密码进行修改,如果会员改了密码,那么session(“password”)中的密码就会存在问题。而且对于密码这些敏感性的数据,最好放在数据库中最安全。    2)对于购物车的商品如何使用session?    购物车的特点,就是需要可以增加、修改、删除购物车中的商品。所以最好

5、的方法就是,利用数据库进行操作。似乎在这里只需要数据库就可以了,不需要session来帮忙了?说得好!我们只需要利用数据库就可以了!不需要使用session了。但需要注意一个问题:一个用户登陆进入之后,他可以连续进行两次购买,生成两次订单。而每次订单都可以购买数种商品。而在两次购物的过程中,这个用户的session(“id”)是一直存在的。如何区分两次购物呢?    这需要我们在数据库设计中加以考虑:要设计两张表,一张表是 order_list,其中的id号代表订单号,纪录了订单号和订货人id。另一张表是order_item,其中的id号代表订单中的货物

6、号,记录了货物号和相关订单号。    3)对于权限分级登陆中如何使用session?    权限分级中涉及一个问题,如何在每个页面中判断出这个用户是否拥有这项权限?如何针对不同的权限,进行不同的显示?而且这一切都是很有效率的?举个例子,如果在每个页面中都采用调用数据库的方法判断权限,就会造成消耗系统资源的问题。我自己比较推荐的方法,是写一个check_auth.asp的小程序(本身是一个子程序),在每一个需要验证权限的页面中插入这个子程序。子程序的写法如下:sub check_auth(session_str,ar

7、g1)statement;end sub    这个子程序实现的功能是什么呢?    1、读入session_str的值。session_str是一个存储权限字符串的session。举一个例子:如果阿猫的权限是:留言版只读(1),CEO在线读写(3),我的部门读写改(7),投诉信箱读写改删(15)。那么session_str=session(auth_str)=”1,3,7,2 / 315”    2、将session_str的值根据arg1参数进行分解提取,获得权限具体的值

8、。比如我需要知道在CEO在线中的权限。只需调用:check_auth(session(auth_str),”CEO”)即可。    程序具体的写法参见具体的程序模块。    4)管理员界面中如何使用session?    管理员界面中使用session的方式和会员登陆的情况一样。同样只需要将id和权限字符串设成session。    5)session和安全设置    当一个用户建立了第一个ses

9、sion,他不仅仅将一个变量存储到了不同的页面中,更重要的是:他建立了一个“会话”。会话的作用非常大,他是一个连接用户和服务器的通道。在这条通道中,不仅存在着一个session指定的变量,还有其他的一些属性,比如:session.id,session.id是一个标记session唯一性的id号,它是一个很长的数字,基本上没有重复的可能。但如果某个黑客可以伪造session.id,他就可以伪造成某一个登陆的用户,从而进行非法活动。或是,一个用户登陆进入后,利用id号的改变,对平级的其他用户进行越权访问,为了防止这种情况,需要注意:登陆者的id号永远不要作为传递的参数,否则会造成安全问题。唯一可以使用的方法是使用session,共享变量,而不是传递变量。因为任何变量在页面的传递中都会有可能被改动!    6)session和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论