文章目录
《4.11.1 常见的安全问题场景》
需要输入输出验证:
- 跨站脚本攻击(CSS or XSS):
- SQL注入攻击
- 远程命令执行(code execution)
- 目录遍历(Directory traversal)
《4.11.2 Hash算法与碰撞》
不可逆。存密码常用的md5,就是一种hash算法
- 链地址法
- 开放地址法
-
- 线性探测法
《4.11.3 数字签名、数字证书》
非对称加密:
数字签名:
以下例子的Allen代表服务端:
- 用Hash生成信件的摘要(digest):
- 用私钥对摘要加密,生成数字签名(signature):
- 收信人用公钥对数字签名解密,得到信件的摘要
数字证书
我的总结:数字签名是为了防止通信内容被第三方篡改。服务器证书包含它的公钥,通过第三方信赖机构(CA)给服务器证书加数字签名,客户端能验证服务器的公钥。
这部分也可以参考 JavaGuide之HTTP vs HTTPS(应用层) 和 SSL/TLS协议运行机制的概述文中最下面的图
《4.11.4 请求重放与中间人攻击》
重放攻击的一个例子:
《4.11.5 openId、oauth》
- 认证(Authentication)和授权(Authorization):
- oauth流程:
一些相关资料:
阮一峰-----GitHub OAuth 第三方登录示例教程
授权码许可类型中,为什么一定要有授权码?
《4.11.6 单点登录》
-
用户与SSO认证中心建立全局会话,与各个子系统建立的是局部会话
-
cas单点登录框架