关于跨域与同源策略、安全cookie、CSRF与JWT认证校验看这一篇就够了

跨域请求与同源策略

请参考我的博客:跨域请求与同源策略

CSRF Protection—跨站请求伪造保护

关于跨站请求伪造的保护是web开发中必须要注重的安全问题!绝大多数情况下我们通过安全cookie的实现策略是这样的:要求每个请求包括一个特定的参数值作为令牌来匹配存储在cookie中的对应值,如果两者匹配,我们的应用认定请求有效。而第三方站点无法在请求中包含令牌cookie值,这就有效地防止了不可信网站发送未授权的请求。

对于POST、PUT与DELETE请求中不带我们需要的csrf参数的请求我们可以一律上报403Forbidden错误!

什么?那GET请求呢?其实在实际的设计中,任何会产生副作用的 HTTP 请求,比如点击购买按钮、编辑账户设置、改变密码或删除文档,都应该使用 HTTP POST方法。无论如何,这是良好的 RESTful 做法,但它也有额外的优势用于防范像我们刚才看到的恶意图像那样琐碎的 XSRF 攻击。

网上有一个很好的例子可以说明做CSRF认证的必要性:https://www.cnblogs.com/blog-rui/p/9517007.html

Tornado中的安全cookie与csrf校验

参考我的博客:tornado中的安全cookies、csrf校验与用户认证

Django中的CSRF认证

参考我的博客:Django中的CSRF认证

jwt认证相关

这里需要提一下,现在很多的前后端分离项目都是使用的jwt的方式进行校验的,因为jwt校验的方式是需要浏览器客户端在每一次请求的时候都要带着token给服务器进行校验,所以jwt认证的方式也是做了CSRF的保护的!

关于jwt认证与实现请参考我之前写的一些博客:

从用户认证到jwt的说明

jwt的多种实现方式

基于tornado实现jwt认证

 

posted on 2020-03-06 14:27  江湖乄夜雨  阅读(533)  评论(0编辑  收藏  举报