cookie

Discuz!X1.5 登录机制

流过昼夜 提交于 2020-02-08 03:17:10
最近需要研究一下 Discuz 的整个系统 的架构! 发现Discuz 验证用户是否在线的机制 非常有趣, 这里到时难住了我一个之前没怎么接触过Web系统的,唉,搞了半天才发现,Discuz!X 的判断是否在线的机制,不是跟我们普通想象的在数据库中又一个标志位来标识是否在线。 Discuz在数据库中是没有这个标志位的,只有在pre_common_onlinetime和pre_forum_onlinelist中提到在线相关的,不过pre_common_onlinetime是记录每个用户(UID)在线的总时间的,(据说:这个记录在线总时间的方法就是,每十分钟记录一次在线时间,然后累加在这张表中,不过这个任务我一直没有发现,这个好像是NT版本的 不知道PHP是不是也这样) 还有一张表 pre_forum_onlinelist 用来记录当前在线成员列表的,不过这个列表不是当前在线的成员,而是title Discuz 判断登录是通过Cookie来判断的,我做过实验,如果我把一位已经登录的用户的SID从session表中删除,然后在刷新刚才已经登录的页面,此时这个用户还是在线的状态,从这里可以判断出,不是通过session表中的数据来判断的,当然我也没发现其它的标志是否在线的表。 说明:Discuz 的Cookie 和 server的session 是分开的,相对独立的。

认证和SSO(五)-基于token的SSO

喜欢而已 提交于 2020-02-08 03:03:09
1、修改项目使其基于浏览器cookie的SSO 1.1、修改回调方法,获得到token后,由存放到session改为存放到cookie /** * 回调方法 * 接收认证服务器发来的授权码,并换取令牌 * * @param code 授权码 * @param state 请求授权服务器时发送的state */ @GetMapping("/oauth/callback") public void oauthCallback(@RequestParam String code, String state, HttpServletRequest request, HttpServletResponse response) throws IOException { String oauthTokenUrl = "http://gateway.caofanqi.cn:9010/token/oauth/token"; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); headers.setBasicAuth("webApp", "123456"); MultiValueMap<String, String> params = new

PHPsession实现用户登陆功能

懵懂的女人 提交于 2020-02-08 02:51:19
对比起 Cookie ,Session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 Session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 Session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能 只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 Session 文件的内容

PHP全栈学习笔记4

落花浮王杯 提交于 2020-02-08 02:48:05
php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript。 JavaScript是网景公司开发的,是一种基于对象和事件驱动并具有安全性能的解释型脚本语言。 JavaScript基础,数据类型,变量,注解 数据类型,unll,undefined,对象型,布尔型,数值型,字符串型。 变量,指在程序中已经存在的命名存储单元,存放信息的容器。 abstract, continue, finally, instanceof, private, this class, final, in, package, synchronized, with char, false, import, null, switch, while catch, extends, implements, new, super, void case, else, goto, native, static, var byte, double, function, long, short, true break, do, for, interface, return, typeof boolean, default, float, int, public, throw 自定义函数 function 函数名([参数]){

PHP全栈学习笔记9

对着背影说爱祢 提交于 2020-02-08 02:46:15
php的会话控制,什么是会话控制,http等。 什么是会话控制思想,http协议。 cookie 和 session http是超文本传输协议,是网络上最广泛的一种网络协议。 http最大特点是无连接无状态,clinet到http request到server,server到http response到clinet。 建立一个连接,连接完结束了。 cookie保存在客户端中,内存中的cookie,由浏览器维护,保存在内存中,浏览器关闭后就没了,保存在硬盘中的 cookie,有一个过期时间,除非手动清除和过期时间过了。 cookie使用场景 Cookie:达成服务器和浏览器之间长久连接的状态。 浏览器的cookie以小文件的形式保存在客户端中。 作用:长期登录,购物车。 设置cookie: bool setcookie($name,$value,$expire,$path,$domain,$secure,$httponly); $expire:默认为0s。time() 认识COOKIE? 1.cookie是存储在客户端中的,至于怎么存储,存储的文件是什么这和服务器没有关系,和客户端有关系。 2.COOKIE过期了,也是客户端来判断要不要传递给服务器,如果过期了就删除对应的COOKIE文件。用户也可以手动的清理COOKIE,那么之前保存的COOKIE就全部不见了 3

Codeigniter 利用加密Key(密钥)的对象注入漏洞

房东的猫 提交于 2020-02-08 02:40:59
http://drops.wooyun.org/papers/1449 原文链接:http://www.mehmetince.net/codeigniter-object-injection-vulnerability-via-encryption-key/ 0x00 背景 大家好,Codeigniter 是我最喜爱的PHP框架之一。和别人一样,我在这个框架中学习了PHP MVC编程。今天,我决定来分析一下Codeigniter的PHP 对象注入漏洞。 我在接下来的叙述中会把重点放在Codeigniter的Session会话机制上。所有我将会分析的method方法都在 CodeIgniter/system/libraries/Session.php 文件里。我在本研究过程中使用的是Codeigniter 2.1 版本。 0x01 Codeigniter Session会话机制 Codeigniter 使用PHP的序列化method方法来存储用户Session会话中的变量。但是Codeigniter Session会话机制并不像我们预期的那样工作。它把session会话的变量存在了客户端的cookie里面,大多数是在(服务器)硬盘上而不是用户COOKIE中。我不知道开发者们为什么这么设计。 下面的叙述摘自codeigniter的文档 The Session class stores

Cookie

痴心易碎 提交于 2020-02-08 01:01:43
Cookie简介 Cookie是客户端,不是内置对象:Cookie是由 服务器 生成的,在发送给客户端保存,相当于 本地缓存 的作用,提高服务器的效率,安全性较差 服务器脚本发送一系列cookie到浏览器,例如:名字,性别 浏览器在本地机中存储这些信息 当下一次浏览器发送任何请求到服务器时,它会同时将这些cookie信息发送到服务器,然后服务器使用这些信息识别用户等 Cookie方法 name = value; public Cookie(String name, String value) String getName():获取name String getValue():获取value void setMaxAge(int expiry):最大有效期(秒) Cookie过程 服务端准备Cookie:response.addCookie(Cookie cookie) 页面跳转(转发,重定向) 客户端获取Cookie:resquest.getCookies() 服务端增加Cookie:response对象,客户端获取对象:resquest对象 不能直接获取一个单独对象,只能一次性将全部cookies对象获取 来源: CSDN 作者: 碎时纪 链接: https://blog.csdn.net/weixin_43945486/article/details/104214739

爬虫cookie

╄→尐↘猪︶ㄣ 提交于 2020-02-08 01:01:06
关于selenium获取cookie然后实现免登陆 https://blog.csdn.net/weixin_40444270/article/details/80593058 cookie会过期 python selenium模块使用出错解决,Message: 'geckodriver' executable needs to be in PATH https://blog.csdn.net/rhx_qiuzhi/article/details/80296801 http://chromedriver.storage.googleapis.com/ 来源: CSDN 作者: ujn20161222 链接: https://blog.csdn.net/ujn20161222/article/details/104214225

本地存储localStorage以及它的封装接口store.js的使用

你。 提交于 2020-02-08 00:43:10
本地存储localstorage localstorage 是 HTML5 提供的在 客户端 存储数据的新方法,主要作用是将数据保存在客户端中,并且数据是 永久保存 的,除非人为干预删除。 localstorage 作为本地存储来使用,解决了 cookie 存储空间不足的问题: cookie 中每条cookie的存储空间为4k,但 localStorage 的存储空间有5M大小。另外,相比于cookie, localStorage 可以 节约带宽 ,在同一个域内,浏览器每次向服务器发送请求,http都会带着cookie,使cookie在浏览器和服务器之间来回传递,浪费带宽,但localStorage将第一次请求的数据直接存储到本地,避免了来回传递。 localstorage 的局限 1、只有版本较高的浏览器中才支持 localstorage 2、localStorage的值的类型限定为string类型,使用 JSON 时需转换 3、如果存储内容过多会消耗内存空间,导致页面变卡,因为localStorage本质上是对字符串的读取 localstorage 有两种方法:分别是 localstorage 和 sessionStorage 。 sessionStorage 方法 针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除

本地存储localStorage以及它的封装接口store.js的使用

半世苍凉 提交于 2020-02-08 00:39:38
本地存储localStorage以及它的封装接口store.js的使用 sublime-text chrome javascript readyGo 2016年11月20日发布 0 推荐 9 收藏, 2k 浏览 本地存储localstorage localstorage 是 HTML5 提供的在 客户端 存储数据的新方法,主要作用是将数据保存在客户端中,并且数据是 永久保存 的,除非人为干预删除。 localstorage 作为本地存储来使用,解决了 cookie 存储空间不足的问题: cookie 中每条cookie的存储空间为4k,但 localStorage 的存储空间有5M大小。另外,相比于cookie, localStorage 可以 节约带宽 ,在同一个域内,浏览器每次向服务器发送请求,http都会带着cookie,使cookie在浏览器和服务器之间来回传递,浪费带宽,但localStorage将第一次请求的数据直接存储到本地,避免了来回传递。 localstorage 的局限 1、只有版本较高的浏览器中才支持 localstorage 2、localStorage的值的类型限定为string类型,使用 JSON 时需转换 3、如果存储内容过多会消耗内存空间,导致页面变卡,因为localStorage本质上是对字符串的读取 localstorage 有两种方法:分别是