web常见的攻击方式有哪些?如何防御?

Web常见攻击方式及防御策略

SQL注入 (SQL Injection)

详细解析 :

SQL 注入是一种利用应用程序未正确验证用户输入的漏洞,通过向应用传递恶意 SQL 查询来操纵数据库的行为。这种攻击可能导致敏感数据泄露、篡改或删除。

步骤:

  1. 攻击者找到可接受动态参数的应用程序入口点。
  2. 输入恶意 SQL 语句作为查询的一部分。
  3. 数据库执行该恶意查询,可能暴露敏感信息或允许未经授权的数据修改。

示例 :

假设有一个登录表单,其后台代码如下:

php 复制代码
$query = "SELECT * FROM users WHERE username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "'";

如果用户名字段被设置为 admin' --,则最终查询变为:
SELECT * FROM users WHERE username='admin' -- AND password=''

这会绕过密码验证。

防御方法:

  • 使用预处理语句(Prepared Statements)和参数化查询。
  • 对所有外部输入进行严格的校验和清理。
  • 避免显示详细的错误消息给终端用户。

跨站脚本攻击 (XSS)

详细解析 :

跨站脚本攻击是指攻击者将恶意 JavaScript 或其他类型的客户端脚本嵌入网页中,在受害用户的浏览器环境中运行这些脚本。它分为反射型 XSS 和存储型 XSS。

步骤 :

对于 存储型 XSS, 参考引用中的描述:

  1. 攻击者将恶意代码提交到目标网站的数据库中。
  2. 用户访问页面时,服务器从数据库提取内容并将其渲染成 HTML 响应。
  3. 浏览器加载此响应后执行嵌入的恶意脚本。

示例 :

在留言板功能中,攻击者发布一条包含 <script>alert('Hacked')</script> 的评论。当其他用户浏览这条留言时,他们的浏览器会弹出警告框。

防御方法:

  • 实现上下文感知编码(Context-Aware Encoding),例如 HTML 编码、JavaScript 编码等。
  • 启用 Content Security Policy (CSP),限制哪些资源可以在页面上加载和执行。
特点 描述 预防方法
利用了HTML标签特性 将恶意脚本插入到正常页面中被执行 上下文编码, CSP

跨站点请求伪造 (CSRF)

详细解析 :

CSRF 是一种强制已认证用户在其不知情的情况下发起恶意请求的技术。由于大多数 Web 应用依赖 cookies 来维持身份验证状态,因此 CSRF 攻击能够轻易伪装合法操作。

步骤:

  1. 攻击者诱导受害者点击链接或加载特定图像。
  2. 此动作触发了一个指向易受攻击网站的有效 HTTP 请求。
  3. 如果受害者当前处于登录状态,则该请求会被视为有效命令而被执行。

示例 :

假设有银行转账接口 /transfer?amount=100&toAccount=attacker_account, 当用户访问了攻击者的恶意站点时,可能会自动发出这样的 GET 请求,从而完成资金转移。

防御方法:

  • 添加一次性令牌至每个重要请求,并由服务器端验证。
  • 检查 Referer 头部以确认请求来源可信度。

文件上传漏洞

详细解析 :

文件上传漏洞发生在开发者未能充分过滤用户上传的内容类型及时机情况下发生的安全隐患。一旦成功利用,就有可能实现远程代码执行(RCE)或其他破坏行为。

步骤:

  1. 提供一个看似无害却隐藏危险逻辑的文件(比如PHP木马).
  2. 成功上传之后尝试让服务端解释执行.

示例 :

假如上传机制只简单检查扩展名为 .jpg 即认为安全,但实际上内部仍可能是 PHP 脚本形式存在的话,那么就可以轻松突破防线。

防御方法:

  • 设置白名单限定允许上传的具体 MIME 类型.
  • 执行额外扫描检测潜在威胁成分.
  • 不直接保留原始命名路径以防目录遍历风险.
特点 描述 预防方法
关键在于文件性质判断失误 导致非法文件得以存留并生效 白名单控制,MIME匹配,病毒查杀工具辅助

总结表格
攻击名称 特点 描述 预防方法
SQL注入 动态构建SQL字符串 黑客可以通过构造特殊字符组合影响DB交互过程 参数绑定/预编译;严格输入验证
XSS 客户端脚本植入 在网页内嵌入恶意JS片段造成连锁反应 输出转义;启用CSP
CSRF 冒充真实用户提交指令 让授权下的账户无意间做出违背意愿的动作 加密token随附关键交易环节
文件上传漏洞 错误识别所接收文档属性 授权后的不当权限授予使得任意格式均可落地 设定明确许可列表;二次审查

图表总结

相关推荐
崔庆才丨静觅5 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60616 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了6 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅6 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅7 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment7 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅7 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊7 小时前
jwt介绍
前端
爱敲代码的小鱼7 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax