web安全入门

最近放假在家确实无聊

看爱情公寓甚至追不上vip的进度

所以在知乎上看了下web安全入门的网课

再结合现在的项目理解了一下这些地方的应用

最基础的就是OWSAP TOP 10

也就是10种比较常见的web应用的攻击方式 

首先比较低级的注入和跨站攻击这些都能从前后端进行防范

sql注入在现在的一些官方库都可以进行防范了 比如gorm中用问号代替的参数都是防注入的

一般go中只要不是fmt直接拼接的字符串都不会有注入的问题

跨站攻击更多是从前端进行防范

跨站xss攻击也是一种注入 只不过是代码注入

具体的操作还是看看知乎 

在现在的项目中有具体应用的就是cookie的jwt令牌 

jwt主要由三部分组成 头部 内容 密钥签名

每两部分之间都是用小数点分隔开

且每一部分的内容都是用base64加密 所以每一部分都是可逆的

但是因为有密钥的存在 所以保证了jwt的安全性

头部主要是声明类型和这里签名的加密的算法

类型显然就是jwt类型了

加密算法默认是HMAC SHA256(HS256) 不过我还没了解到别的 有别的应该也就是换个参数

内容就是我们要传递下去的内容

这部分内容是可以通过base64进行解码解出来的 所以不能存放一些敏感信息

最后一部分就是密钥签名

这部分会将上面的两部分和服务器上的密钥进行加密生成一个签名

这部分签在jwt的最后 因为密钥保存在服务器上 一般用户并不知道

所以jwt认证防御了用户伪造请求的攻击

因此这个密钥也十分重要

参考:

https://zhuanlan.zhihu.com/p/46505934

https://zhuanlan.zhihu.com/p/42643704

https://www.jianshu.com/p/576dbf44b2ae