`
m635674608
  • 浏览: 5029213 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何通过JWT防御CSRF

 
阅读更多

先解释两个名词,CSRF 和 JWT。

CSRF (Cross Site Request Forgery),它讲的是你在一个浏览器中打开了两个标签页,其中一个页面通过窃取另一个页面的 cookie 来发送伪造的请求,因为 cookie 是随着请求自动发送到服务端的。

JWT (JSON Web Token),通过某种算法将两个 JSON 对象加密成一个字符串,该字符串能代表唯一用户。

CSRF 的产生

首先通过一个图来理解 CSRF 是什么现象。

\" border=Java,还是 Node.js,都有 response.setHeader 方法。

小结

我对 Web 安全方面的了解还不太深,所以没有太多经验可谈。安全性是一个在平常不太受重视的领域,因为完成一个项目的优先级从来都是:功能 > 颜值 > 性能, 安全 。至少得保证用户在使用过程中不会出错,然后再做得酷炫或清新一点,性能和安全只有在满足了前两项,或者迫在眉睫的时候才去考虑。当服务器承受不了那么高 的负载了,才会去增加更多的服务器,但业务功能从一开始就不能少。

可是这样做有错吗?并没有吧。在特定的场景,做特定的处理,或许是性价比最高的决策了。

这篇文章中反复提到的一个词是“ 约定 ”,它貌似和“ 具体情况具体分析 ”这个观点矛盾了,额……。

约定是人与人之间的共识,比如说 GET 请求,那么对方的第一反应就是查询,当有人破坏约定,用 GET 请求去做删除操作时,就会让别人很难理解(当有一大堆人这么做的时候,就不难理解了吧……)。或者当我们提到 JWT 的时候,那它就应该是由三个部分组成,如果有人仅仅是按照自己的算法来生成一个 token,同样可以唯一标识用户,那他必须得像共事的人解释,这个算法的安全性、使用方法等。

另一方面,如果真心觉得按照“约定”办事没必要,太麻烦,并且可以接受“耍小聪明”的后果的话,那就按自己的想法去做吧(真的不再考虑一下了吗)。

为什么 HTML5 新增了那么多语义化的标签,是因为一切都在朝着更规范的方向走。

 

http://www.2cto.com/Article/201509/441863.html

分享到:
评论

相关推荐

    基于 SpringBoot、Spring Security、JWT 的前后端分离权限管理系统.zip

    - **JWT 在前后端分离中的作用**:JWT 充当了安全的认证媒介,前端通过 JWT 向后端证明其身份,后端验证令牌后允许访问受保护的资源。 5. **项目结构** - **后端**:通常包括 Spring Boot 应用,使用 Spring ...

    react-powerhouse-jwt:使用JWT进行身份验证和授权

    同时,结合CSRF令牌,可以防御CSRF攻击。 总的来说,`react-powerhouse-jwt`是一个强大的工具,它简化了React应用中JWT的身份验证和授权流程。通过理解JWT的工作原理和利用该库提供的功能,你可以创建一个安全、...

    基于vue和node的网络安全与防御实践项目(免费提供全部源码)

    防御常见攻击:包括CSRF(跨站请求伪造)保护、XSS(跨站脚本攻击)防护、SQL注入防御等。项目中集成了防御这些常见Web攻击的最佳实践。 日志记录与监控:实现对用户操作和系统运行状态的日志记录,便于后续审计和...

    大型网站系统与Java中间件实践.rar

    10. **安全与防护**:包括HTTPS、OAuth、JWT、CSRF和XSS防御等,确保网站的安全性是系统设计的重要一环。 11. **架构设计原则**:书中可能探讨可扩展性、可维护性、可测试性的设计原则,以及如何根据业务需求选择...

    前端-js/vue/react/组件开发/面试指南

    CSRF 防御手段 ● Set-Cookie 增加 SameSite 约束 ● 不使用Cookie 这种自动携带的身份验证手段,改用JWT 等自定义 Request Header 的方案。 ● CSRF Token ● 关键业务用验证码等方式强制校验。

    java单点登录流程及其他

    // 禁用“防止伪造的跨域攻击的防御机制” http.csrf().disable(); // 配置请求授权 http.authorizeRequests() .mvcMatchers(urls) // 匹配某些请求 .permitAll() // 许可,即, } ``` 在上面的配置中,...

    WAAP技术洞察源素材

    WAAP(Web Application...5. 实验与模拟:通过实验环境模拟攻击,测试和优化防御机制。 通过对WAAP技术的深入理解和实践,我们可以更好地保护Web应用和API,提升网络安全水平,为企业和用户创造一个更安全的在线环境。

    Web安全程序设计与实践课件.rar

    4. CSRF(跨站请求伪造):解释CSRF的工作原理,以及采用Token机制等防御手段。 二、身份验证与授权 1. 密码学基础:讨论哈希函数、对称加密和非对称加密在保护用户密码和通信过程中的应用。 2. session管理:学习...

    springboot-security.zip

    CSRF 防御通常通过生成和验证 CSRF 令牌来实现,确保非幂等操作的安全性。 4. **过滤器链**:Spring Security 基于 Servlet 过滤器,构建了一个可扩展的过滤器链,用于处理 HTTP 请求。这些过滤器执行认证、授权和...

    Spring Security-3中文官方文档(及教程)

    5. **CSRF防护**:为了防止跨站请求伪造攻击,Spring Security提供了内置的CSRF保护,通过生成和验证CSRF令牌来确保只处理来自合法源的请求。 6. **记住我功能**:Spring Security支持“记住我”功能,允许用户在一...

    spring-security-2.0.5

    Spring Security内置了多种防御机制,如CSRF(跨站请求伪造)防护、XSS(跨站脚本攻击)过滤,以及Session Fixation防护等,增强了应用程序的安全性。开发者可以通过简单配置就能启用这些防护措施,无需编写额外的...

    Security在前后端分离项目中的综合应用.zip

    后端需要验证每个修改状态的请求是否来自可信源,通常通过在请求头中添加CSRF令牌来实现。 4. **XSS(跨站脚本)防御**:前端应当对用户输入进行严格的过滤和转义,防止恶意脚本执行。后端也需进行验证,避免注入...

    C#单点登录

    8. 跨域身份验证:在Web应用程序中,实现跨域SSO需要处理Cookie和HTTP标头,例如通过使用`anti-CSRF`令牌和`Authorization`标头,确保用户身份的安全传递。 9. 安全考虑:SSO涉及到敏感的用户信息,因此必须确保...

    客户端认证源码.zip

    9. **安全性与保护**:IdentityServer支持各种安全机制,如HTTPS、CSRF防御、JWT签名验证等,确保通信安全。 10. **测试和调试**:压缩包可能包含测试用例和示例客户端,帮助开发者理解如何与IdentityServer进行...

    Laravel开发-laravel-api

    同时,Laravel的安全特性,如CSRF防护、SQL注入防御,以及对XSS攻击的预防,确保了API的安全运行。 总结来说,Laravel在API开发中提供了强大的工具和结构,从客户端处理到安全策略,再到响应构建和版本控制,都为...

    web常见漏洞思维导图.rar

    防御措施包括使用令牌验证、Referer检查、同源策略等。 4. 文件包含漏洞:允许攻击者通过动态生成页面时包含恶意文件,可能导致远程代码执行。应限制文件包含函数,避免用户可控的路径输入。 5. 未授权访问:由于...

    Web安全学习笔记.pdf

    信息收集是安全工作的重要一环,笔记详细讲解了如何通过域名信息、端口扫描、站点信息收集、搜索引擎利用以及社会工程学等方法来获取目标系统的相关信息。此外,还介绍了利用参考链接进行深入研究的方法。 笔记的...

    开发高安全级别的企业应用系列课程(3):编写安全代码-抵御攻击

    这通常通过身份验证和授权机制实现,如OAuth、JWT等。理解这些机制的工作原理以及如何正确实现它们对于构建安全的应用至关重要。 再者,安全性也体现在错误处理和日志记录上。不恰当的错误消息可能导致信息泄露,让...

    spring+vue前后端分离的考试报名管理系统.rar

    安全性方面,除了JWT,还可能涉及CSRF(跨站请求伪造)防护、XSS(跨站脚本攻击)过滤、SQL注入防御等措施,确保系统安全稳定运行。 测试是任何系统不可或缺的一部分,单元测试、集成测试和端到端测试确保了系统的...

Global site tag (gtag.js) - Google Analytics