token

随机数安全的事

泪湿孤枕 提交于 2019-12-06 13:41:41
概述 随机数在计算机应用中使用的比较广泛,最为熟知的便是在密码学中的应用。本文主要是讲解随机数使用导致的一些Web安全风。 我们先简单了解一下随机数 分类 随机数分为真随机数和伪随机数,我们程序使用的基本都是伪随机数,其中伪随机又分为强伪随机数和弱伪随机数。 真随机数,通过物理实验得出,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等 伪随机数,通过一定算法和种子得出。软件实现的是伪随机数 强伪随机数,难以预测的随机数 弱伪随机数,易于预测的随机数 特性 随机数有3个特性,具体如下: 随机性:不存在统计学偏差,是完全杂乱的数列 不可预测性:不能从过去的数列推测出下一个出现的数 不可重现性:除非将数列本身保存下来,否则不能重现相同的数列 随机数的特性和随机数的分类有一定的关系,比如,弱伪随机数只需要满足随机性即可,而强位随机数需要满足随机性和不可预测性,真随机数则需要同时满足3个特性。 引发安全问题的关键点在于不可预测性。 伪随机数的生成 我们平常软件和应用实现的都是伪随机数,所以本文的重点也就是伪随机数。 伪随机数的生成实现一般是算法+种子。 具体的伪随机数生成器PRNG一般有: 线性同余法 单向散列函数法 密码法 ANSI X9.17 比较常用的一般是线性同余法,比如我们熟知的C语言的rand库和Java的java.util.Random类,都采用了线性同余法生成随机数。

PostScript String Token

痞子三分冷 提交于 2019-12-06 13:35:40
I have a loop that takes out each word in a string using token, then I want to be able to do computations on it like this: (1 2 add 3 4 add) But any way you code it i keep getting 7 add 2 1 I want it to be 7 3 This is what I am working with { %loop pstack (repl> )print flush (%lineedit)(r)file dup bytesavailable string readstring pop { token {}{exit}ifelse exch dup () eq {pop exec exit}if exec }loop }loop I would advise you to write stack comments at the end of each line. It really helps. { %loop pstack (repl> )print flush (%lineedit)(r)file % f dup bytesavailable string readstring pop % s {

1204 中间件以及cookie,session

我与影子孤独终老i 提交于 2019-12-06 13:08:18
目录 一 .cookie与session原理 1.cookie 操作 1.1 设置cookie set_cookie 1.2 获取cookie request.COOKIES.get('k1') 1.3 设置cookie的超时时间 max_age = num 1.4 删除cookie delete_cookie('k1') 代码 2.session 相关方法 2.1 设置session session[k]=v 2.2 获取session session.get 2.3 删除session session.delete() 2.4 设置超时时间 set_expiry(value) session配置 3.token django中间件 1.django流程图 2. 中间件定义 3. 自定义中间件 1. process_request 2.process_response 3. process_view 4.process_exception 5.process_template_response 一 .cookie与session原理 cookie,session,token介绍 为什么会有这些技术 目的:为了保存客户端的用户状态 原因:HTTP协议的无状态的 1.cookie 什么是Cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对

【转】认识JWT

早过忘川 提交于 2019-12-06 13:07:37
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 2. 什么时候你应该用JSON Web Tokens 下列场景中使用JSON Web Token是很有用的: Authorization (授权) : 这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 Information Exchange (信息交换) : 对于安全的在各方之间传输信息而言,JSON Web Tokens无疑是一种很好的方式。因为JWTs可以被签名,例如,用公钥/私钥对,你可以确定发送人就是它们所说的那个人。另外,由于签名是使用头和有效负载计算的,您还可以验证内容没有被篡改。 3. JSON Web Token的结构是什么样的 JSON Web Token由三部分组成,它们之间用圆点(.)连接。这三部分分别是: Header Payload Signature 因此,一个典型的JWT看起来是这个样子的: xxxxx.yyyyy.zzzzz 接下来,具体看一下每一部分:

(day58)十、Cookie、Session、Token、Django中间件

痴心易碎 提交于 2019-12-06 13:04:16
目录 一、Cookie (一)由来 (二)什么是Cookie (三)Django中操作Cookie (1)设置Cookie (2)获取Cookie (3)删除Cookie 二、Session (一)由来 (二)Django中操作Session (1)设置Session (2)获取Session (3)删除Session 三、Django中间件 (一)什么是中间件 (二)自定义中间件 (1)process_request (2) process_response (3) process_view (4) process_exception (5) process_template_response (6)中间件执行流程 四、Token(扩展) (一)由来 (二)什么是Token (三)目的 (四)使用方式 (1) 设备号/设备mac地址作为Token (2) session值作为Token (五)一些问题和解决方案 一、Cookie (一)由来 HTTP协议的无状态特性导致每次的请求都是独立的,即客户端和服务器在某次会话中产生的数据不会被保存,因此产生了Cookie,用来保存客户端的用户状态 (二)什么是Cookie Cookie具体是指服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些信息,以便服务器通过Cookie提取有用信息从而判断访问者

GitLab+Jenkins实现持续集成+自动化部署

北慕城南 提交于 2019-12-06 12:45:26
一.自动化上线代码基本介绍 1.软件开发生命周期 老板创意---产品经理---立项---开发团队---测试团队(黑白盒)---运维上线 产品经理---加需求---开发团队---测试团队---运维更新代码上线 2.什么是环境? 开发环境:开发自己用的电脑本地自己装的php python的开发工具等。 测试环境:多个人的代码合起来跑一遍,运行一次,测试mysql redis等。 预发布环境:直接连接线上数据库,专门的测试域名小范围内测试。 生产环境:线上环境 每个项目一套环境 (线下可以放一起配多域名 线上不行)。 3.什么是持续集成(CI)? 每天都进行一次代码合并,就是持续集成。 多个开发写的代码 集中起来管理 放到代码库里 (版本控制管理软件)代码库工具:svn git(多) 。(版本控制系统:类似于快照的增量备份的机制,也就是每一次版本更新,都会在原来的基础上保留变化的内容,生成一个新的版本,之前的版本也会被保留,以便快速回滚。) 每天都要做代码合并,防止冲突,在合并的时候会产生冲突,所以提交的时候有先后顺序,就是你先上传,然后我把你上传的拉过来和我的进行合并,排除冲突,然后我在上传到主分支。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证

微信对接中的3个token

半世苍凉 提交于 2019-12-06 12:42:52
1.小程序access_token APP_ID: 小程序 APP_SECRET: 小程序 def get_wx_access_token(ttl_timeout=60, timeout=30): # 1.从缓存中获取 access_token_ttl = ttl_key(WX_ACCESS_TOKEN) if access_token_ttl and access_token_ttl > ttl_timeout: access_token = get_access_token_wx() logger.info('access_token:{} ttl:{} > {}s'.format( access_token, access_token_ttl, ttl_timeout)) return access_token, None # 2.请求微信服务器获取最新的access_token params = { 'grant_type': 'client_credential', 'appid': settings.APP_ID, 'secret': settings.APP_SECRET, } url = settings.WX_API_TOKEN logger.info('params:{}'.format(params)) try: resp = requests.get

微信对接中的3个token

无人久伴 提交于 2019-12-06 12:39:45
1.小程序access_token APP_ID: 小程序 APP_SECRET: 小程序 def get_wx_access_token(ttl_timeout=60, timeout=30): # 1.从缓存中获取 access_token_ttl = ttl_key(WX_ACCESS_TOKEN) if access_token_ttl and access_token_ttl > ttl_timeout: access_token = get_access_token_wx() logger.info('access_token:{} ttl:{} > {}s'.format( access_token, access_token_ttl, ttl_timeout)) return access_token, None # 2.请求微信服务器获取最新的access_token params = { 'grant_type': 'client_credential', 'appid': settings.APP_ID, 'secret': settings.APP_SECRET, } url = settings.WX_API_TOKEN logger.info('params:{}'.format(params)) try: resp = requests.get

转载-- 什么是token

巧了我就是萌 提交于 2019-12-06 12:36:15
对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。 一、我们先解释一下他的含义: 1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。 2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。 3、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。 了解了Token的意义后,我们就更明确的知道为什么要用他了。 二、如何使用Token? 这是本文的重点,在这里我就介绍常用的两种方式。 1、用设备号/设备mac地址作为Token(推荐) 客户端:客户端在登录的时候获取设备的设备号/mac地址,并将其作为参数传递到服务端。 服务端:服务端接收到该参数后,便用一个变量来接收同时将其作为Token保存在数据库,并将该Token设置到session中,客户端每次请求的时候都要统一拦截

Could JWT(json web token) totally replace Session?

三世轮回 提交于 2019-12-06 11:29:26
问题 I know that JWT could be used to replace the cookie/session based authentication, and we used that in the previous project, and I understand that using JWT has a lot of benefit such as stateless, CDN support, avoid csrf attack, better to support cluster ENV etc. However, I'm very confused on whether JWT could totally replace Session? If we want to fully leverage JWT to keep all the session state, then it means that anytime the server backend want to add any state into session, instead of