php开发面试题---禁用cookie之后,如何使用session

一、总结

一句话总结:

在每个url后面自动加上PHPSESSID的值即可,用户禁止cookie后,服务器仍会将sessionId以cookie的方式发送给浏览器

1、用户禁止cookie后,服务器的sessionId还会发给用户么?

会:服务器仍会将sessionId以cookie的方式发送给浏览器,但是,浏览器不再保存这个cookie(即sessionId)了。

2、如何设置才能在每个url后加上sessionId的值?

设置session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项

这样他会在每个url后面自动加上PHPSESSID的值,然后正常使用session就可以了。

3、session的生命周期中特别注意的?

只要活动就不会过期:session是一个只要活动就不会过期的东西,只要开启cookie,每一次会话,session_id都不会改变

二、禁用cookie后如何使用session还有session_id的使用

参考或转自:禁用cookie后如何使用session还有session_id的使用 - 方方土zekeny - 博客园
https://www.cnblogs.com/zekeny/p/6708152.html

(1)如果用户禁止cookie,服务器仍会将sessionId以cookie的方式发送给浏览器,但是,浏览器不再保存这个cookie(即sessionId)了。

(2)如果想继续使用session,需要采取其他方式来实现sessionId的跟踪。

可以使用url重写来实现sessionId的跟踪。

(3)url重写

a,什么是URL重写

浏览器在访问服务器上的某个地址时,不能够直接写这个组件的地址,而应该使用服务器生成的这个地址。

比如,

<a href="some">someServlet</a> error

<a href-"<%=response.encodeURL("some")%>"></a>

encodeURL方法会在"some"后面添加sessionId。

b,如何进行url重写。

//encodeURL方法用在链接地址、表单提交地址。
                response.encodeURL(String url);
                
                //encodeRedirectURL方法用于重定向地址。
                response.encodeRedirectURL(String url);

三、用户禁止cookie后,如何继续使用session

参考或转自:用户禁止cookie后,如何继续使用session - 龙腾四海365的专栏 - CSDN博客
https://blog.csdn.net/u011637069/article/details/49870497

说一下这2个的基本信息吧,2个统称为会话,session存在于服务器端,cookie存在于用户端。之前有人说过如果禁用了cookie那么session就使用不了了,可以说这是正确的,也可以说这是错误的。因为禁用了cookie,session_id就不能保存,而服务器正是根据session_id来判断用户的session,所以说这是正确的。经过测试,当我们禁用cookie时,刷新页面session_id会改变,说明session_id是用cookie保存的。

解决cookie禁用然后引用session的方法。

1.

session.use_cookies = 0  //设置客户端是否使用cookie来保存session值  该参数的值不影响上述机制的进行。

但是为了验证该机制,这里把该参数设为0,排除cookie携带seesionid的可能

session.use_only_cookies = 0  //是否只使用cookie来保存session值  该参数为1时,上述机制失效。

设置session.use_trans_sid = 1或者编译时打开打开了--enable-trans-sid选项

这样他会在每个url后面自动加上PHPSESSID的值,然后正常使用session就可以了。

2.

在url后面加上session_id的值或者保存session_id的值于数据库或redis中,然后在下一次要调用session前,运行session_id($session_id),还有这条语句要在session_start()前。

目前我了解到的只有这两种方法可以解决。

然后我再聊下session_id吧,它是保存在cookie中,首先session是一个只要活动就不会过期的东西,只要开启cookie,每一次会话,session_id都不会改变,我们可以根据session_id来判断用户是否是正常登陆,防止用户伪造session。然后我们也要防止session被劫持,我们可以对session_id进行再一次的加密,防止暴力破解,还有可以设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。

转载于:https://www.cnblogs.com/Renyi-Fan/p/11012086.html

php开发面试题---禁用cookie之后,如何使用session相关推荐

  1. 2014年最新前端开发面试题

    2014年最新前端开发面试题(题目列表+答案 完整版) 转载自https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Qu ...

  2. 前端开发面试题及答案整理

    前端开发面试题及答案整理 文章目录 一些开放性题目 position的值, relative和absolute分别是相对于谁进行定位的? 如何解决跨域问题 XML和JSON的区别? 谈谈你对webpa ...

  3. 2014年最新前端开发面试题(转自markyun)

    2014年最新前端开发面试题(转自markyun) PS:在其基础上完善了一些答案,增加一些问题 欢迎fork wj:) 目录 前言 HTML 部分 CSS 部分 JavaScript 部分 其他问题 ...

  4. 2014年最新web前端开发面试题

    2014年最新web前端开发面试题 本文是一份非常不错的2014年web前端开发工程师的面试题集锦,并附有参考答案,推荐大家参考下. 试题目录: HTML 部分 CSS 部分 JavaScript 部 ...

  5. 前端开发面试题(转载)

    原文地址 前端开发面试题 前言 本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误 ...

  6. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题...

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

  7. php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理)

    php开发面试题---攻击网站的常用手段有哪些,及如何预防(整理) 一.总结 一句话总结: 比较记忆:注意比较各种攻击的区别,比如csrf和xss,以及xss和sql,这样才能记住 1.Sql注入是什 ...

  8. 前端开发面试题总结之——JAVASCRIPT(一)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  9. Android中高级进阶开发面试题冲刺合集(四)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第四集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

最新文章

  1. TVMNN编译Compiler栈
  2. 阿里云安全肖力:安全基础建设是企业数字化转型的基石
  3. hive中的绣花模型_hive建模方法
  4. Cocos2d-x 3.x如何通过WebSocket连接服务器进行数据传输
  5. python画猫和老鼠_观察者模式(猫与老鼠的故事!)
  6. 上班快1个月,老板也不签合同,也没交社保,该怎么办?
  7. js王者归来之正则表达式
  8. ATT CK 阶段之 Initial Access --Drive-by Compromise
  9. 如何关掉visual studio 2012 实时调试器
  10. Linux系统编程:串口编程
  11. linux历史版本内核下载方法。
  12. str.charAt(0);
  13. 2022校招已开启,学生党必备之什么是秋招和春招!
  14. promise是什么及其用法
  15. 安卓虚拟键盘_像科幻片里那样隔空打字,虚拟键盘会成为未来趋势吗?
  16. 标准化拉普拉斯矩阵特征值范围为什么小于等于2?(证明)
  17. WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True)
  18. 参考虚幻引擎UObjectBase类源代码定义出 UObject对象成员的偏移量
  19. Python|自定义判断质数的函数
  20. java实现堆栈_Java实现一个简单的堆栈

热门文章

  1. TensorFlow2.0:数据统计
  2. 01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,背包问题求方案数
  3. [golang]如何看懂调用堆栈
  4. 持续集成与持续部署宝典Part 4:创建持续部署流水线
  5. Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
  6. java 对象回收_如何处理JAVA大量对象回收问题?
  7. php长按图片保存mui,Vue+mui实现图片的本地缓存
  8. JAVA如何比较两个数组是否相等?
  9. 加密工具类 EncryptionUtils.java
  10. [设计模式-创建型]建造者(Builder)