Web 安全相关知识总结

2021-03-13 13:53 Other 153

1. XSS(跨站脚本攻击)

通过输入一些脚本导致页面完成正常的交互,这种类型的攻击不会对服务器造成影响。
解决方式:过滤所有用户输入的内容,作为开发人员应该记住 不要相信用户输入的任何内容

2. CSRF(跨站请求伪造)

跨站点伪造用户请求进行非法操作,攻击手段是模拟用户发送非法请求到服务器完成非法操作。
解决方式:在请求体中添加 token,验证token的合法性,例如 Laravel 就在表单中自动添加 csrf_token 来避免页面被攻击。

3. Sql 注入

把恶意SQL插入到请求体中,最终达到欺骗服务器执行恶意的 SQL 命令。
解读方式:使用 pdo,pdo组件做了防止sql注入功能,尽量使用参数绑定的形式。

4. DDOS(分布式拒绝服务攻击)

针对目标系统的恶意攻击行为,会导致被攻击者的业务无法正常访问,甚至服务器瘫痪。
解决方式:使用网络安全公司的高防产品来抵御 DDOS 攻击。

5. 文件上传

上传不合法的文件,导致服务器被攻击,例如上传可执行的脚本文件。
解决方式:
1.检查上传文件的格式是否符合要求;
2.增加文件的访问权限;
3.使用第三方对象存储产品;

6. 使用 HTTPS 协议

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,在传输过程中很容易被不法分子抓取到请求数据,如果内容中包含敏感信息,可能会导致严重后果。
HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密,能够提升数据在传输过程中的安全性。
https = http + ssl
http 一般为80端口,https 为443端口。不过 https 的速度更慢,在传输时需要对数据进行加解密。

7. api 接口安全

使用 https 协议来传输数据;
api 接口进行时间验证,在请求时添加时间戳,后端验证请求时间是否合法;
将请求参数进行签名,后段获取到数据后,检测签名和数据是否合法,防止数据被人篡改;
请求限流,闲置同一ip频繁访问服务器;
在参数中添加随机字符串,防止一次请求重复请求;

赞赏码 给点吧😭