常见的网络攻击

2021-10-15  本文已影响0人  前端小白的摸爬滚打

SQL 注入

核心就是攻击者希望 web 服务器执行攻击者希望执行的 SQL 语句,从而对数据库中的数据进行增删改查

手段

将 sql 语句放入表单提交或者是 url 参数中传递给服务器,后端如果没有做输入校验直接将变量取出进行数据库操作则及容易中招

防御

XSS 攻击

攻击者希望用户的浏览器可以执行他的 JS 代码

存储型 XSS 攻击

存储型与反射型的区别就是,反射型只是服务器将用户的请求参数转手后返回给浏览器执行;而存储型则是服务器会将可以执行的 JS 代码存储到数据库中,后面查询时将脚本插入到返回的网页中给浏览器渲染

可以看一个简单的例子:

反射型 XSS 攻击

防御手段

CSP 内容安全策略:CSP 的本质就是建立一个白名单,告诉浏览器哪些外部资源可以被加载和执行。我们只需要配置规则,如何拦截是浏览器自己实现的。可以通过这种方式来尽量减少 XSS 攻击。
配置 CSP 的方式有两种:

  1. meta 标签
  2. 设置 HTTP Header:Content-Security-Policy

CSRF 跨站请求伪造

攻击者利用用户已经登陆的身份,在用户毫不知情的情况下进行一些操作。cookie 被泄露。

CSRF 攻击的条件

对于 cookie 不允许跨域访问,指的是,跨域的情况下 js 脚本是无法获取 cookie 的,但是不代表跨域的 http 请求无法携带 cookie

防御手段

浏览器可以在请求的时候在请求的接口中添加一个 token 参数,服务器收到请求之后验证这个 token 和 cookie 中的 token 是否一致一致的时候再允许请求。这样攻击者就需要在请求的时候构造这个 token 参数,而他可能无法构造一个带有 token 的完整的 URL

用户输入验证码才可以完成请求

注意:浏览器的同源策略是不能防御 CSRF 攻击的(对于简单请求不能防御,因为他不会发送预检请求,会直接携带 cookie 请求服务器,但是复杂请求是先会发送一个 OPTIONS 的预检请求,此时不会携带 cookie,只有服务器允许跨域之后才会携带,所以对于 CSRF 攻击有一定的防御作用),因为跨域请求依旧是可以发送出去而且可以正常被服务器接收以及处理,只不过返回的响应在没有设置正确的 Access-Control-的头部信息的情况下会被浏览器拦截

CSRF 攻击大多数都不会基于 ajax 请求,一般都是表单请求

OS 注入攻击

和 SQL 注入类似,只不过它是基于操作系统的。

通过 web 应用注入一些危险的 OS 命令,服务器在没有防范的情况下执行这些 OS 命令 rm -rf *

防御

点击劫持

视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入到自己的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击

原理

用户在登陆网站 A 的系统后,被攻击者诱惑打开第三方网站,而第三方网站通过 iframe 引入了 A 网站,用户在第三方网站中点击被修饰过的按钮,实际上点击的是 A 网站的按钮。
比如说在优酷上发布了一些视频,想让更多的人关注它,就可以通过点击劫持来实现。

防御

它是一个响应头,用于防止 iframe 嵌套的点击劫持

取值:

URL 跳转漏洞

借用 url 跳转将使应用加载不安全的页面,从而导致安全问题

原理

将不安全的页面的 url 作为参数跟在用户信任的网站 url 的后面,点击之后经过服务器或者是浏览器解析之后跳转到恶意的页面

http://gate.baidu.com/index?act=go&url=http://t.cn/RVTatrd
http://qt.qq.com/safecheck.html?flag=1&url=http://t.cn/RVTatrd
http://tieba.baidu.com/f/user/passport?jumpUrl=http://t.cn/RVTatrd

实现方式

防御

如果确定 url 参数进入的来源,我们就可以通过该方式来实现安全限制,保证 url 的有效性,避免恶意用户生成自己的连接

上一篇下一篇

猜你喜欢

热点阅读