中易网

禁用cookie后,session还可以用吗

答案:6  悬赏:80  
解决时间 2021-01-16 05:53
  • 提问者网友:棒棒糖
  • 2021-01-15 07:37
禁用cookie后,session还可以用吗
最佳答案
  • 二级知识专家网友:走死在岁月里
  • 2021-01-15 09:03
1. ASP
在ASP中,Session必须倚赖Cookie才可用,Session是存储在服务器端的,而Cookie是存储在客户端的,相对而言,Session的安全性和可靠程度都比Cookie高。
2. PHP
在PHP中,通过相关的配置,可以让Session不依赖Cookie而存在。这是因为:
Session,储存于服务器端(默认以文件方式存储Session),根据客户端提供的Session ID来得到用户的文件,取得变量的值,Session ID可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的URL的“?”后面的部分)来传送给服务器,然后服务器读取Session的目录……。也就是说,Session ID是取得存储在服务上的Session变量的身份证。当代码session_start();运行的时候,就在服务器上产生了一个Session文件,随之也产生了与之唯一对应的一个Session ID,定义Session变量以一定形式存储在刚才产生的Session文件中。通过Session ID,可以取出定义的变量。跨页后,为了使用Session,你必须又执行session_start();将又会产生一个Session文件,与之对应产生相应的Session ID,用这个session id是取不出前面提到的第一个Session文件中的变量的,因为这个Session ID不是打开它的“钥匙”。如果在session_start();之前加代码session_id($session id);将不产生新的Session文件,直接读取与这个id对应的Session文件。
PHP中的Session在默认情况下是使用客户端的Cookie来保存Session ID的,所以当客户端的cookie出现问题的时候就会影响Session了。必须注意的是:Session不一定必须依赖Cookie,这也是Session相比Cookie的高明之处。当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID附着在URL中,这样再通过Session ID就能跨页使用Session变量了。但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1“,或者编译时打开打开了“--enable-trans-sid”选项。
用过论坛的朋友都知道,在进入论坛的时候,往往会提示你检查Cookie是否打开,这是因为大多数论坛都是基于Cookie的,论坛用它来保存用户名、密码等用户信息,方便使用。而且很多朋友都认为Cookie不安全(其实不是这样),往往禁用它。其实在PHP程序中,我们完全可以用Session来代替Cookie,它可以不依赖于客户端是否开启Cookie。
所以,我们可以抛开Cookie使用Session,即假定用户关闭Cookie的情况下使用Session,其实现途径有以下几种:
1. 设置php.ini配置文件中的“session.use_trans_sid = 1”,或者编译时打开打开了“--enable-trans-sid”选项,让PHP自动跨页传递Session ID。
2. 手动通过URL传值、隐藏表单传递Session ID。
3. 用文件、数据库等形式保存Session ID,在跨页过程中手动调用。
全部回答
  • 1楼网友:旧脸谱
  • 2021-01-15 15:17
不能用了。。。。。。。。。。。。。
  • 2楼网友:未来江山和你
  • 2021-01-15 13:58
1.SESSION并不是COOKIE的子集ASP中:SESSION 必须倚赖COOKIE才可用,SESSION是存储在服务器端的,而COOKIE是存储在客户端的,相对而言,SESSION的安全性和可靠程度都比COOKIE高ASP.NET中SESSION可以不依赖COOKIE而存在!!!
也就是说,从微软的方面来说,开始让SESSION摆脱COOKIE的束缚了!!
Session数据是存储在服务器上的,Cookie数据是存储在浏览器本机上的.
但如果浏览器不支持使用/接受Cookie,则不能使用Session.
  • 3楼网友:渊鱼
  • 2021-01-15 12:37
不可以,因为session其实是有一个sessionid存到cookie中,是在创建session时生成的,用来区分不同的浏览器用户
  • 4楼网友:青灯有味
  • 2021-01-15 10:59
我暂时保留我的看法!
  • 5楼网友:舊物识亽
  • 2021-01-15 10:43
1.SESSION并不是COOKIE的子集ASP中:SESSION 必须倚赖COOKIE才可用,SESSION是存储在服务器端的,而COOKIE是存储在客户端的,相对而言,SESSION的安全性和可靠程度都比COOKIE高ASP.NET中SESSION可以不依赖COOKIE而存在!!!也就是说,从微软的方面来说,开始让SESSION摆脱COOKIE的束缚了!!Session数据是存储在服务器上的,Cookie数据是存储在浏览器本机上的.但如果浏览器不支持使用/接受Cookie,则不能使用Session.这是因为,虽然Session真正的数据是存储在服务器上的,但每个Session都对应了一个由Web服务器指定的唯一识别符SeesionID,而在浏览器里是使用Cookie来存储这个SeesionID的.所以使用Session,浏览器必须支持Cookie.cookie是一个特殊的信息只是服务器存于用户计算机上的一个文本文件Session很大的实际意义的当一个用户提交了表单时浏览器会将用户的SessionID自动附加在HTTP头信息中当服务器处理完这个表单后将结果返回给SessionID所对应的用户客户端的Session信息是存储于Cookie中的如果客户端完全禁用掉了Cookie功能他也就不能享受到了Session提供的功能了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息