侧边栏壁纸
  • 累计撰写 218 篇文章
  • 累计创建 59 个标签
  • 累计收到 5 条评论

Web 攻击的几种常见方式简介

barwe
2022-04-14 / 0 评论 / 0 点赞 / 1,017 阅读 / 1,212 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

XSS

Cross-Site Scripting 跨站脚本攻击

攻击者往 Web 页面里插入恶意的可执行的脚本代码,当用户浏览该网页时,嵌入其中的恶意代码会被执行。可能造成的影响有:

  • 使用虚假表单获取用户输入的敏感信息
  • 窃取用户的 Cookie,发送恶意请求
  • 显示植入的内容

反射型 XSS

通过诱骗用户点击恶意链接实现,将恶意代码植入 URL 诱骗用户点击。

这种攻击的防护一般由浏览器完成:过滤可能带有恶意代码的 URL。

反射型 XSS 直接在浏览器中执行,不会保存在服务器上。

防护方法:

  • Web 页面渲染的数据来自服务器
  • 不使用可以执行字符串的方法,例如 eval

存储型 XSS

在表单提交时将恶意代码保存到数据库,当读取数据时从数据库中取出恶意代码并执行。

常见的例如评论中嵌入恶意代码。

注意点:

  • 提交的表单数据需要检查和转义之后再保存
  • 取出的数据需要检查并转以后再给前端
  • 前端拿到数据后需要先转义再渲染

XSS 防护

资源访问白名单

建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。

字符转义

用户的输入永远不可信任的,最普遍的做法就是转义输入输出的内容,对于引号、尖括号、斜杠进行转义。

在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。


CSRF

Cross Site Request Forgery 跨站请求伪造

用户登录正常站点A,浏览器记录Cookie。

用户在进行敏感操作时点击了恶意站点B提供的危险链接,用户进入B时B会自动访问A。

如果A没有做CSRF防御,B就可以利用浏览器暂存的Cookie请求A的资源。

SameSite

对Cookie设置SameSite属性,跨域发送请求时不携带Cookie,存在浏览器兼容性。

防盗链检查

HTTP Request Header 中包含了 Referer 属性,用来记录发起请求的服务器。

Anti CSRF Token

发送请求时在请求的参数和 Cookie 中同时加入一个随机生成的 token,服务器检查这两个地方的 token 是否相同。不同则说明携带这个 Cookie 的请求是第三方服务器发来的,服务器可以进一步处理。

这是比较推荐的解决方案。

验证码

验证码能够很好的遏制 CSRF 攻击,但是会严重影响用户体验。


点击劫持

一种视觉欺骗,攻击者用自己的 iframe 覆盖原本的内容,诱导用户点击。


URL 跳转漏洞

针对基本上没有安全意识的用户。


SQL 注入

数据和代码没有分离,将用户输入的数据直接拼接成 SQL 语句执行。

防御:

  • 限制数据库操作权限
  • 检查字符串
  • 转义特殊字符
  • 使用安全的查询工具,而不是直接执行 SQL 代码

OS 命令注入

只要在能调用Shell函数的地方就有存在被攻击的风险。

向Shell发送命令,让Windows或Linux操作系统的命令行启动程序。


Reference

https://juejin.cn/post/6844903772930441230

0

评论区