OSI七层模型与TCP/IP四层对应关系

请求一个网站的过程

TCP VS UDP

TCP/IP vs UDP/IP

HTTP存在的问题
- 容易被监听;
- 数据可能被篡改;
- 容易假冒服务器;
- HTTPS = HTTP over SSL
- SSL vs TLS
- SSL = Secure Sockets Layer 安全套接层
- TLS = Transport Layer Security传输层安全协议
- 加密算法
- 摘要 MD5 SHA --验证数据未被篡改,不能防偷窥
- 对称加密 DES 3DES RC-5 IDEA --加密解密秘钥相同;加/解密速度快
- 非对称加密 RSA ECC --加密解密秘钥不同;加/解密速度慢
- HTTPS连接过程即TLS握手过程

开发相关的网络攻击
- 原因
- 程序自身逻辑问题
- 未经验证的客户端数据
- 不要相信任何客户端传递的参数
- HTTP Header中的信息不可信
- 请求也可能并非是真正的用户请求
- 应用场景
- url中参数被修改
解决办法:验权
- form中餐宿被修改
- cookie中的值被修改
不要存敏感信息,信息要随机并且有效期设置
- RequestHeader不可信
做复杂验证,如验证码,手机号码
- 请求不一定可信
如验证码的,2363,前端可以伪造请求,比如循环10000次,知道找到正确验证码。解决办法,限制次数;
SQL注入攻击
- 例子:重置密码
程序拼接了SQL语句,未使用SQL的参数模式
XSS攻击
- Cross Site Scripting跨站脚本攻击
- 代码注入攻击的一种
- 危害
- 盗取cookie等敏感信息;
- 利用被攻击用户身份执行一些操作,如发帖、删除信息等;
- 利用被攻击站点和用户攻击其他站;
- 搞乱网站内容,阻碍正常用户访问;
如何防止XSS攻击
tech.meituan.com/2018/09/27/…
CSRF攻击
- 跨站请求伪造
- Cross Site Request Forgery
- One click attack
- session ridding
- CSRF / XSRF
- 场景--请假审批
第三方网站有隐藏的表单提交(提交的url是指向请假流程系统)
- 特点
- 不需要代码注入
- 被攻击的用户需要实现登录过,并且未退出受攻击的网站
- 以被攻击用户的身份执行操作
- 服务器/用户较难发现此类攻击
- 不容易找到发起攻击的源头
- 解决办法
- 检查request header referer https--->http浏览器一般不传递referer
- 给表单增加一个唯一的id(nonceid),仅可用一次,并校验合法性;