1. 同 ip 并发限制
防御措施:
(同一个 ip 窗口时间内限制访问次数)
2. 各中间件环境限流
防御措施:
(网关,tomcat, 数据库连接池,线程池,应用限流,存储中间件限流)
3. 加密存储敏感信息
防御措施:
密码加密
4. 传输层未加密
防御措施:HTTPS
5. 传输层相关参数校验。
防御措施:
(前后端根据算法算出一个盐值比较)
6.SQL 注入攻击 (防止 sql 拼接)
防御措施:
1、特殊字符过滤,不要用拼接字符串的方法来凑 sql 语句。
2、对 sql 语句进行预编译,比如 java 的 preparedstatement。
3、关闭错误信息,攻击者可能会通过不断的尝试来得到数据库的一些信息,所以关闭错误信息变得重要起来。
4、控制数据库的权限,比如只能 select,不能 insert,防止攻击者通过 select * from test ;drop tables 这种操作
7.CSRF (Cross Site Request Forgery),即跨站请求伪造
防御措施:
1、验证 referer 字段,这个字段主要是反映了访问某个网页只能有 referer 发起请求,所以通过 referer 验证,可以抵御一部分 csrf 攻击。
2、在请求地址中加 token 验证,攻击者发送恶意请求时,通过 token 验证来进行身份验证,而 token 必须是一个攻击者猜不到的,很难去模拟出来的。
3、在 htttp 请求头中定义字段,其实就是将 2 中说得 token 字段放入请求头,解决了每次在请求头中加入 token 的不便,同时在其也不会记录在地址栏里,降低了 token 泄露的风险
8.XSS (Cross Site Scripting),跨站脚本攻击
防御措施:
文本输入做中对 js 关键字做编码,让回给用户浏览器的 js 不可执行
浏览器的同源策略,浏览器只允许访问 cookie 的 IP+port 必须同最初创建 cookie 的 ip+port 相同
web app 或者浏览器提供 “禁用 script” 的选项
8. 身份认证和会话劫持
防御措施:
session token 定期失效
9. 拒绝服务攻击 DoS
防御措施:
对于 SYN flood:启用 SYN Cookie、设置 SYN 最大队列长度以及设置 SYN+ACK 最大重试次数。
10. 限制网站后台访问权限
防御措施:
禁止公网 IP 访问后台;禁止服务员使用弱口令。
11. 防火墙
防御措施:
在服务器与网络的接口处配置防火墙,用于阻断外界用户对服务器的扫描和探测。
12. 项目发布前使用使用漏洞扫描软件
防御措施:
项目发布前使用使用漏洞扫描软件,如 IBM appScan,UnisWebScanner,对安全性进行评估。
网络安全学习资源分享:
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供: