token

SpringSecurity的防Csrf攻击

六月ゝ 毕业季﹏ 提交于 2020-03-02 19:51:01
CSRF(Cross-site request forgery) 跨站请求伪造,也被称为 One Click Attack 或者 Session Riding ,通常缩写为 CSRF 或 XSRF ,是一种对网站的恶意利用。尽管听起来像跨站脚本( XSS ),但它与 XSS 非常不同, XSS 利用站点内的信任用户,而 CSRF 则通过伪装成受信任用户的请求来利用受信任的网站。与 XSS 攻击相比, CSRF 攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比 XSS 更具危险性。 CSRF 是一种依赖web浏览器的、被混淆过的代理人攻击( deputy attack )。 如何防御 使用POST请求时,确实避免了如img、script、iframe等标签自动发起GET请求的问题,但这并不能杜绝CSRF攻击的发生。一些恶意网站会通过表单的形式构造攻击请求 public final class CsrfFilter extends OncePerRequestFilter { public static final RequestMatcher DEFAULT_CSRF_MATCHER = new CsrfFilter.DefaultRequiresCsrfMatcher(); private final Log logger = LogFactory

微信小程序开发- 6

余生颓废 提交于 2020-03-02 17:17:08
微信小程序基础到进阶(共6节) 微信小程序开发- 1 - 开发流程和开发基础 微信小程序开发- 2 - 生命周期、事件、原生组件 微信小程序开发- 3 - 原生组件 微信小程序开发- 4 - 原生API 微信小程序开发- 5 - 开放功能(登录、购物车) 微信小程序开发- 6 - 开放功能(微信支付) 微信支付 支付逻辑总结 登录获取 token 在点击支付按钮的时候 => 判断 判断是否有token 如果有token 继续完成支付功能 如果没有token => 跳转到 授权登录 页面 => 登录 => token 支付 1. 创建订单 参考接口 : 订单 => 创建订单 需要参数 请求头 = : token 请求参数 : 总价格、收货地址、goods(goods_id goods_number goods_price) 返回的结果 => 订单号 order_number 2. 预支付 参考接口 : 支付 => 获取支付参数 需要参数 : 请求头 : token 请求体 : order_number 返回的结果 => pay 对象 3. 开始支付 参考api : 微信小程序官网 => api => 开方接口 => 支付 wx.requestPayment(pay) 需要的参数 : pay对象 4. 查看支付状态 参考接口 : 订单 => 查看订单支付状态 需要参数 请求头 :

跟开涛老师学shiro -- 身份验证

穿精又带淫゛_ 提交于 2020-03-02 17:15:50
身份验证 ,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号。 credentials :证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 最常见的principals和credentials组合就是用户名/密码了(对,就是这句话,身份验证说到最后,还是这个公式 user.password == login.password) 。接下来先进行一个基本的身份认证。 另外两个相关的概念是之前提到的 Subject 及 Realm ,分别是主体及验证主体的数据源。 2.2 环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖: Java代码 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version>

(二)Shiro身份验证

不羁岁月 提交于 2020-03-02 17:13:23
身份验证 ,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号。 credentials :证明/凭证,即只有主体知道的安全值,如密码/数字证书等。 注:最常见的principals和credentials组合:用户名/密码。 Subject:主体。 Realm :主体的数据源。 2.2 环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖: pom.xml 添加依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging<

微信为公众号基础接入

荒凉一梦 提交于 2020-03-02 13:05:19
package com.ann.wechat.controller; import com.ann.wechat.domain.ImageMsgEntity; import com.ann.wechat.domain.InMsgEntity; import com.ann.wechat.domain.OutMsgEntity; import com.ann.wechat.util.EncryptionUtil; import com.ann.wechat.util.WechatUtil; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Arrays; /** * @author code * 微信公众号测试 */

Django组件-ContentType

蹲街弑〆低调 提交于 2020-03-02 05:03:05
ContentType组件 ContentType是Django的内置的一个应用,可以追踪项目中所有的APP和model的对应关系,并记录在ContentType表中。 当项目做数据迁移后,会有很多django自带的表,其中就有django_content_type表 ContentType组件应用 在model中定义ForeignKey字段,并关联到ContentType表,通常这个字段命名为content-type 在model中定义PositiveIntergerField字段, 用来存储关联表中的主键,通常用object_id 在model中定义GenericForeignKey字段,传入上面两个字段的名字 方便反向查询可以定义GenericRelation字段 postman from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation # Create your models here. class Food(models.Model): """ id title 1 面包 2 牛奶 """

微信公众平台开发(71)OAuth2.0网页授权

半世苍凉 提交于 2020-03-02 03:49:44
本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称、头像、性别、国家、省份、城市、语言。 本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录。 在本文中,特别要注意的是有两个不同的Access Token,他们产生的方式不一样,一种是使用AppID和AppSecret获取的access_token,一种是OAuth2.0授权中产生的access_token,方倍工作室分别称为 全局Access Token和 授权Access Token。 一、通过全局Access Token获取用户基本信息 1. 用户关注以及回复消息的时候,均可以获得用户的OpenID <xml> <ToUserName><![CDATA[gh_b629c48b653e]]></ToUserName> <FromUserName><![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]></FromUserName> <CreateTime>1372307736</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> <EventKey><![CDATA[]]></EventKey> </xml>

网页微信授权

删除回忆录丶 提交于 2020-03-02 03:47:19
一、什么是OAuth2.0 官方网站:http://oauth.net/ http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的私密的资源(如用户个人信息、照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。 OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。 新浪微博API目前也使用OAuth 2.0。 原文:http:/

提交代码到github抱歉remote: Invalid username or password. fatal: Authentication failed for

一个人想着一个人 提交于 2020-03-02 00:22:15
今天git push 到github仓库报错,提示需要输入用户密码,出现如下提示,开始以为是密码记错了,就直接登录github网页是ok的。 remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/xxx/xxx/' 在网上也看了些,发现了原来输入的密码不是登录密码是personal access token。之前创建的personal access token看不到了,重新生成,点击右上角头像,选择 Settings ->Developer settings->Personal access tokens,单击Generate new token,勾线rep基本上就满足了,单击Generate token,会跳出新页面,记录下new token,重新push或pull,输入new token.基本上就OK. 来源: CSDN 作者: samz5906 链接: https://blog.csdn.net/samz5906/article/details/104600119

[编译原理-词法分析(二)] 使用状态转换图识别词法单元

て烟熏妆下的殇ゞ 提交于 2020-03-01 19:47:05
前言 一个小Demo, 用于分析的源文件比较简单, 主要的部分都有, 扩展比较容易. 将正则表达式表示的模式构造为状态转换图. 在本文中只列举状态转换图. 双缓冲区(代码中的Buffer类): https://my.oschina.net/u/3107416/blog/3110834 数字的状态转换 保留字和ID的状态转换 运算符的状态转换 用于分析的源文件 结果 前情提要 一、词素模式 二、打印Token 三、StateTransition类 四、StateTransition的构造与析构函数 五、StateTransition普通函数的实现 六、运算符的状态转换 七、数字的状态转换 八、保留字和ID的状态转换 九、空格, 制表符, 换行符设置 十、调用 正文 将使用<~> 标记来自哪个文件 一、词素模式 <~Token.h> namespace Lexical_Analysis { enum Tag { RESERVE_WORD = 256, ID, METHOD, RELOP, NUM, }; enum RelopTag { LT, // < LE, // <= EQ, // = NE, // <> GT, // > GE, // >= }; enum ReserveWordTag { INT, IF, ELSE, THEN }; class Token { public: