当前位置: 首页 > news >正文

Web常见攻击方式及防御措施

一、常见Web攻击方式

1. 跨站脚本攻击(XSS)

攻击原理:攻击者向网页注入恶意脚本,在用户浏览器执行

  • 存储型XSS:恶意脚本存储在服务器(如评论区)

  • 反射型XSS:恶意脚本通过URL参数反射给用户

  • DOM型XSS:前端JavaScript不安全地操作DOM

2. 跨站请求伪造(CSRF)

攻击原理:诱骗用户在已认证的网站上执行非预期操作

  • 利用用户的登录状态

  • 通过恶意链接/图片发起请求

3. SQL注入

攻击原理:通过输入数据插入或"注入"恶意SQL命令

  • 攻击者可以查看、修改、删除数据库内容

  • 常见于未过滤的用户输入拼接SQL语句

4. 点击劫持(Clickjacking)

攻击原理:诱使用户点击隐藏的恶意元素

  • 使用透明iframe覆盖合法页面

  • 用户看似点击安全内容,实则触发恶意操作

5. 文件上传漏洞

攻击原理:上传恶意文件到服务器

  • 上传可执行脚本获取服务器权限

  • 上传超大文件导致DoS(Denial of Service(拒绝服务))

6. 分布式拒绝服务(DDoS)

攻击原理:用大量请求淹没服务器资源

  • 消耗带宽、CPU或内存资源

  • 使合法用户无法访问服务

7. 中间人攻击(MITM)

攻击原理:拦截通信双方的流量

  • 公共WiFi常见风险

  • 窃取敏感信息如登录凭证

二、防御措施

1. XSS防御

  • 输入过滤:对用户输入进行转义和验证

function escapeHtml(str) {return str.replace(/[&<>'"]/g, tag => ({'&': '&amp;','<': '&lt;','>': '&gt;',"'": '&#39;','"': '&quot;'}[tag]));
}
  • 输出编码:根据输出上下文(HTML/JS/URL)进行编码

  • Content Security Policy (CSP):限制脚本来源

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

HttpOnly Cookie:防止JavaScript访问敏感Cookie

//http
Set-Cookie: sessionid=xxxx; HttpOnly; Secure

2. CSRF防御

  • CSRF Token:表单中包含服务器验证的令牌

<input type="hidden" name="_csrf" value="随机令牌">

SameSite Cookie属性

//http
Set-Cookie: sessionid=xxxx; SameSite=Strict
  • 验证Referer/Origin头:检查请求来源

  • 关键操作二次验证:如短信/邮件确认

3. SQL注入防御

  • 参数化查询/预处理语句

// 正确方式
db.query('SELECT * FROM users WHERE id = ?', [userId]);// 错误方式(易受攻击)
db.query(`SELECT * FROM users WHERE id = ${userId}`);
  • ORM框架:使用Sequelize、TypeORM等

  • 最小权限原则:数据库用户仅赋予必要权限

  • 输入验证:白名单验证输入格式

4. 点击劫持防御

  • X-Frame-Options头

//http
X-Frame-Options: DENY

CSP的frame-ancestors指令: 

//http
Content-Security-Policy: frame-ancestors 'none'

 JavaScript防御(后备方案):

if (top !== self) top.location = self.location;

 

5. 文件上传防御

  • 文件类型验证:检查MIME类型和扩展名

  • 文件内容扫描:检查实际内容而非仅扩展名

  • 重命名文件:使用随机生成的文件名

  • 隔离存储:上传目录不解析脚本

  • 大小限制:防止超大文件攻击

6. DDoS防御

  • CDN服务:分散流量压力

  • 速率限制(Rate Limiting)

// Express中间件示例
const rateLimit = require('express-rate-limit');
app.use(rateLimit({ windowMs: 15*60*1000, max: 100 }));

 

  • Web应用防火墙(WAF):过滤恶意流量

  • 云防护服务:如Cloudflare、AWS Shield

7. 中间人攻击防御

  • HTTPS强制:HSTS头

//http
Strict-Transport-Security: max-age=31536000; includeSubDomains
  • 证书钉扎(HPKP):固定可信证书

  • 敏感操作二次验证:即使会话被劫持

三、综合安全建议

通过组合这些措施,可以显著提高Web应用的安全性,但需注意安全是一个持续过程而非一次性任务。

  1. 保持更新:定期更新框架、库和服务器软件

  2. 最小权限原则:所有服务使用最低必要权限运行

  3. 深度防御:多层安全措施而非依赖单一防护

  4. 安全头设置

    //http
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block

  5. 日志监控:记录并分析异常访问模式

  6. 定期渗透测试:主动发现漏洞

  7. 安全意识培训:防范社会工程学攻击

 

 

 

相关文章:

  • 怎么配置一个kubectl客户端访问多个k8s集群
  • 【数据可视化-26】基于人口统计与社会经济数据的多维度可视化分析
  • react-09React生命周期
  • wordpress学习笔记
  • AI与智能能源管理:如何通过AI优化能源分配和消耗?
  • Python----深度学习(基于深度学习Pytroch线性回归和曲线回归)
  • 【数据可视化-25】时尚零售销售数据集的机器学习可视化分析
  • vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据
  • 从内核到应用层:深度剖析信号捕捉技术栈(含sigaction系统调用/SIGCHLD回收/volatile内存屏障)
  • ROS 快速入门教程03
  • 运维打铁:Centos 7使用yum安装 Redis 5
  • 【FAQ】PCoIP 会话后物理工作站本地显示器黑屏
  • centos挂载新的硬盘
  • Docker配置DNS方法详解及快速下载image方法
  • SpringBoot自定义拦截器以及多个拦截器执行顺序
  • 安卓adb shell串口基础指令
  • 【金仓数据库征文】加速数字化转型:金仓数据库在金融与能源领域强势崛起
  • 修改el-select背景颜色
  • 第9章 多模态大语言模型
  • vue element使用el-table时,切换tab,table表格列项发生错位问题
  • 出发!陈冬、陈中瑞、王杰三名航天员领命出征
  • 厚植民营企业家成长土壤是民营经济高质量发展的关键
  • 韩国检方以受贿嫌疑起诉前总统文在寅
  • 快评|对华关税或“大幅下降”,市场压力之下特朗普“急于与中国达成协议”
  • “电化长江”的宜昌成果:船舶航运停靠都能用电,助力一江清水向东流
  • 41岁知名学者陈昊因病骤然离世,北大再发讣告缅怀