当前位置: 首页 > news >正文

目前做哪些网站致富养殖网站源码

目前做哪些网站致富,养殖网站源码,织梦婚纱网站模板,企业网站开发所需要的模块oauth2 引言 读了《设计模式之美》和《凤凰架构》架构安全篇之后#xff0c;决定写一个OAuth2.0的认证流程的Demo#xff0c;也算是一个阶段性的总结#xff0c;具体原理实现见《凤凰架构》(架构安全设计篇)。 涉及到的源码可以从https://github.com/WeiXiao-Hyy/oauth2获…oauth2 引言 读了《设计模式之美》和《凤凰架构》架构安全篇之后决定写一个OAuth2.0的认证流程的Demo也算是一个阶段性的总结具体原理实现见《凤凰架构》(架构安全设计篇)。 涉及到的源码可以从https://github.com/WeiXiao-Hyy/oauth2获取欢迎Star! OAuth2.0原理 主要解决的问题 面向解决第三方应用(Third-Party Application)的认证授权协议使用Token代替用户密码作为授权的凭证。 有了令牌之后哪怕令牌被泄漏也不会导致密码的泄漏令牌上可以设定访问资源的范围以及时效性每个应用都持有独立的令牌哪个失效都不会波及其他 OAuth2.0一共提出了四种不同的授权方式 授权码模式(Authorization Code)隐式授权模式(Implicit)密码模式(Resource Owner Password Credentials)客户端模式(Client Credentials) 本文介绍和实现的是授权码方式。 OAuth2.0流程图 client请求授权服务端获取Authorization Codeclient通过Authorization Code再次请求授权服务端获取Access Tokenclient通过服务端返回的Access Token获取用户的基本信息。 流程图如下所示: 第一次使用github账号应用来登陆掘金需要进行授权 掘金即是第三方应用, 请求GitHub。 注册一个新的OAuth Application 如果我们需要使用GitHub账号来关联我们自己的第三方应用则需要完整走一遍OAuth2.0流程。 GitHub生成的client_id, client_secret(密钥), redirect_uri, homepage_url, application_name等等。 clientId如何生成唯一的 在注册clientId以及申请clientSecret时如何保证生成的clientId是不重复的呢 和JWT以及Cookie-Session对比 参考《凤凰架构》架构安全篇 https://icyfenix.cn/architect-perspective/general-architecture/system-security/authorization.html 谈谈State参数为什么可以防止CSRF攻击 观察GitHub OAuth2.0实现文档可以观察到在authroize接口需要传递一个state参数并且在redirect_uri重定向时原封不动传递回来所以为什么可以防止CSRF攻击呢 核心: 在于授权服务端进行token请求绑定时会从session将本次会话的账号与生成access_token进行绑定而对于用户是谁并不关心。 案例 用户B登录掘金网站并且选择绑定自己的GitHub账号;掘金网站将用户B重定向到GitHub由于他之前已经登录过GitHub所以GitHub直接向他显示是否授权掘金访问的页面;用户B在点击同意授权之后截获GitHub服务器返回的含有authorization code参数的HTTP响应;用户B精心构造一个Web页面它会触发掘金网站向GitHub发起令牌申请的请求而这个请求中的authorization code 参数正是上一步截获到的code;用户B将这个Web页面放到互联网上等待或者诱骗受害者用户A来访问;用户A之前登录了掘金 网站只是没有把自己的账号和其他社交账号绑定起来。在用户A访问了用户B准备的这个Web页面令牌申请流程在用户A的浏览器里被顺利触发掘金 网站从GitHub那里获取到access_token但是这个token以及通过它进一步获取到的用户信息却都是攻击者用户B;掘金网站将用户B的GitHub账号同用户A的掘金账号关联绑定起来从此以后用户B就可以用自己的GitHub账号通过OAuth 登录到用户A在掘金网站中的账号堂而皇之的冒充用户A的身份执行各种操作; 代码实现(知识碎片总结) 本部分将开发过程中遇到的难点记录下来具体源码参考此repo postman 请求共享session问题 本文为单体应用使用了HttpServletRequest和HttpSession方便开发将相关的数据保存在服务器的Session中但是Postman在发送请求的时候 不会将其视为同一个连接导致获取不到Session中的数据需要每次将用户登陆的Cookie赋值到相应的接口上才能获取到Session中的数据。 实现HandlerInterceptor接口完成请求过滤 涉及到接口请求过滤条件时可以通过实现WebMvcConfigurer接口来添加过滤规则例如 授权前用户没有登陆则需要重定向到登陆页面如果access_token过期则需要重新获取… Configuration public class WebMvcConfig implements WebMvcConfigurer {//注意注入bean的写法Beanpublic OauthInterceptor oauthInterceptor() {return new OauthInterceptor();}Beanpublic AuthAccessTokenInterceptor accessTokenInterceptor() {return new AuthAccessTokenInterceptor();}Beanpublic LoginInterceptor loginInterceptor() {return new LoginInterceptor();}Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor()).addPathPatterns(/user/**, /oauth2.0/authorizePage, /oauth2.0/authorize, /sso/token);registry.addInterceptor(oauthInterceptor()).addPathPatterns(/oauth2.0/authorize);registry.addInterceptor(accessTokenInterceptor()).addPathPatterns(/api/**);} }参考资料 https://icyfenix.cn/architect-perspective/general-architecture/system-security/https://time.geekbang.org/column/intro/100039001https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-appshttps://juejin.cn/post/6844903668861534215#heading-4https://www.jianshu.com/p/c7c8f51713b6
http://www.hkea.cn/news/14351482/

相关文章:

  • 高端大气的网站模板小程序可以用手机网站吗
  • 星空传媒有限公司网站怎么套用模板做网站
  • 免费的个人网站html代码怎样通过网络销售自己的产品
  • 网站别人帮做的要注意什么东西用二级域名做的网站算新站吗
  • 微信官方网站是什么营销技巧心得体会
  • 网站的开发流程可以分为哪三个阶段wordpress 文章太多
  • 上海城市建设档案馆网站网页制作与设计是什么
  • 网站推广优化排名教程网站建设数据收集方法
  • 网站建设和运营的课程鞍山吧台
  • 珠海高端网站制作施工企业研发资金投入情况说明
  • 手机网站首页设计网站提示页面设计
  • 潍坊网站建设8年图片制作器app
  • 网站在什么环境下做东莞人才网58
  • 手机网站方案编写百度2023免费
  • 阿里巴巴企业网站怎么做wordpress文章导入公众号
  • 英文外链平台枣庄seo技术培训
  • 巢湖网站建设电话wordpress栏目更改无法显示
  • 农畜产品销售平台的网站建设seo优化实训报告
  • 什么网站的注册是动态我的个人主页模板
  • js 网站跳转为了做宣传网站而注册公司
  • 购物网站seo搜索引擎前期分析搜索引擎优化学习
  • html5网站开发公司广州网站开发报价
  • 企业网站手机版模板免费下载抖音投放广告价格一览
  • 网站信息登记表扫描件网络工程师资料
  • 旅游网站建设备案ftp安装wordpress主题
  • 站优云网络公司重庆市工程建设标准信息网
  • 网站设计入门正保建设工程网站
  • 自己建网站还是淘宝建筑网格布是用什么材料
  • 企业网站的优缺点建设工程消防验收网站
  • 网站开发 自我评价加强纪检监察网站建设