web安全防御|青训营笔记

93 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

Web开发的安全之旅防御篇

基于XSS的防御

1.      不要信任用户提交的内容

2.      不要将用户提交的内容直接转换为DOM

3.      当用户必须要动态生成DOM才能运行的时候,那么就用字符串即string指向DOM,并要求这个字符串是安全的。

4.      插播Same-origin-Policy(协议,域名,端口)

 

CSP

1.      哪些域名被认为是安全的

2.      来自安全源的脚本可以执行,否则直接抛错

3.      对eval+inline script说no

 

 

CSRF的防御

1.      If伪造请求,就是异常来源

2.      Then限制请求来源

 

 

避免用户信息被携带Samesite Cookie

1.      从根源上解决CSRF的攻击方式

2.      限制的是cookie的domain属性和当前的域名是否匹配

 

CORS

1.      资源读写(HTTP)请求

2.      限制的是资源域名和页面域名

3.      白名单

 

注入防御

1.      找到项目中查询SQL的地方

2.      使用prepared statement

 

防御Dos

1.      避免写出贪婪模式匹配的方式,特别是在处理接口相关操作的时候

2.      拒绝使用用户的正则

 

DDos

1.      过滤和抗量,自动快速扩容量,关掉非核心业务

2.      网络层的 DDoS 攻击究其本质其实是无法防御的,我们能做得就是不断优化服务本身部署的网络架构,以及提升网络带宽。

 

传输层

https特点,完整性,可靠性,不可抵赖性

1.      数字签名,就是有两个key,一个私钥,一个明钥。

2.      证书。

SQL注入

1. 防止 SQL 注入主要是不能允许用户输入的内容影响正常的 SQL 语句的逻辑,

2. 当用户的输入信心将要用来拼接 SQL 语句的话,我们应该永远选择不相信,

3. 任何内容都必须进行转义过滤。