亲宝软件园·资讯

展开

白话web安全

小雨小雨丶 人气:0
### 伤心往事 梦回大二,那时候沉迷于毒奶粉,甚至国庆都在宿舍与毒奶粉共同度过,但是却发生了一件让我迄今难忘的事情~ 我新练的黑暗武士被盗了!!!干干净净!!! 虽然过了好久了,但是记忆犹新啊,仿佛发生在昨天。记得那时候还在屯材料,金色小晶体是什么的。没日没夜的刷图攒钱,倒买倒卖假粉,真紫。后来刷悲鸣的时候爆了一把虫炮(一把价格蛮高的手炮武器),把我激动的哟。 然后就挂到拍卖行了,不一会居然有人私信我,说他看中了,但是游戏里的金币不够,看他挺诚心的,就和他商量怎么办~ 最终方案就是他让我登录一个网站,然后输入我的qq号、密码。他会在那个网站上给我转钱。而且价格要比拍卖行高,我一想,不亏!就去了,但是当我输入账号密码后,我的游戏被中断了。等我马不停蹄的登录账号后,我的材料,武器,金币都没了~~ ![](https://user-gold-cdn.xitu.io/2020/4/7/17153d6c5a124a45?w=240&h=240&f=jpeg&s=10169) 虽然说这个事和网络安全关系不是很大,完全是因为自己啥都不懂,那个网站应该不是腾讯官方的。相当于我把我的账号密码主动泄漏给他人了~ 不过如果你想保护好的你的账号和隐私,对于网络安全还是有必要进行了解的。 ### csrf攻击 #### 煮个例子: 1. 我登陆了腾讯官方网站(qq.com),这时候我的身份信息就被保留在cookies中了 2. 那个坏人骗我访问另外一个非腾讯官网网站(xx.com) 3. xx.com有一段脚本会发往请求到qq.com,比如qq.com/some-action,这时候会携带之前被浏览器保存身份信息 4. qq.com收到了带有身份信息的请求,会正常处理 5. 这时候的行为就不是我能控制的了,如果那个坏人利用我的身份信息向qq.com发送一个转义物品的请求,那我也没办法的。 #### 上面的例子只是其中之一,还有各种各样的攻击方式,这里简单列举下: 1. 访问一个不安全地址,页面包含自动发送的get请求或post请求。 2. 链接形式,比如图片,上面可能是各种诱导语。 #### 那我们怎么避免csrf呢? 这就需要我们对症下药,那有哪些明显的症状呢? 1. csrf发生在第三方网站 2. csrf攻击获取不到cookie信息,只是使用 那我们就可以开发出有疗效的药来治它。 1. 阻止不被允许的第三方域发起请求 同源检测 + samesite cookie 2. 类似于签名,要求附带源域产出的一些私密信息 csrf token + 双重cookie验证 3. 人工验证 - 同源检测就是说检测来源是否合法,否则禁止请求。不过这种方法相对简单,只能防范常规的csrf攻击。 - samesite cookie的话目前兼容性不是很好,还未普及,samesite cookie本身是用来限制在不同域下的请求时,cookie是否可被携带 - csrf token是生成一个随机的token,注入到各种各样的链接地址或form表单中,利用的是csrf可获取浏览器设置的cookie,但是无法获取html上的随机数。token是一个很有效的方法,除了有点麻烦。 - 双重cookie验证,除了服务端设置的cookie外,每次访问页面还将自动设置一个随机的cookie,然后再请求的时候携带,之后服务端进行url上的cookie和浏览器上的cookie验证。该方法不仅减轻服务端压力,而且后端验证也方便,但是安全性没有token高。 - 人工验证。比如验证码、输入支付密码,这样即使你有cookie也无法攻击,因为还需要进一步信息验证。可以发现,很多网站都会有这一步人工验证的过程。 更多详见: [美团web安全-csrf](https://tech.meituan.com/2018/10/11/fe-security-csrf.html) [host、referrer、origin](https://juejin.im/post/5d8dd391f265da5b991d4b39) ### xss攻击 #### 什么是xss xss是是一种代码注入攻击,或者说是一种插入式脚本攻击,攻击者利用对浏览器、服务器、数据库的理解,在网站中插入各种可以和网站相关运行代码组合并可执行的脚本,之后在运行的时候不仅会执行网站本身的代码,还会执行攻击者插入的脚本。 比如获取url上的query进行搜索的搜索框,原来是这样的: ```html ``` 如果攻击者注入这样的代码: ```javascript "> ``` 拼接后就会变成这样: ```html "> ``` 当浏览器执行的时候,就会弹框。 对于服务端或者数据库同样可以利用类似原理进行攻击。 这样攻击者就可以获取cookie、修改数据库等恶意操作了,非常危险。 #### 常见xss攻击 - 存储式 先存储到服务端,比如数据库,然后吐给浏览器,浏览器执行的时候触发 - 反射性 用户点击的时候触发,比如攻击者构造出特殊的url地址,服务端解析后返回的时候就已经有恶意代码了。 - DOM型 同上,不过是直接就到浏览器了,执行后产生攻击。 相对于前两种,DOM型是浏览器触发的,其他两个是服务端触发的。 #### 药 浏览器和服务端进行适当的代码转义即可防范大部分xss攻击,除此之外,还可以禁止一些不安全的操作,比如加载外域代码,控制内容输入长度,http-only(禁止js操作cookie),验证码等. 还有[csp - 内容安全策略](http://www.ruanyifeng.com/blog/2016/09/csp.html) 感觉对比上面的csrf攻击,主要区别是:xss是利用用户对网站的信任,csrf是利用网站对用户操作的信任。 更多详见: [美团web安全-xss](https://tech.meituan.com/2018/09/27/fe-security.html) ### sql注入 其实和xss攻击中提及的数据库部分是一样的。 比如有这样一段sql语句: ```javascript sql = "select * from users where name=" + name; ``` name是由用户输入之后生成的,这时候如果直接将name结果拼接: ```javascript select * from users where name='' or '1'='1'; ``` 这样不仅执行了原本的sql,还执行了攻击者的代码。 解决方法同上。 ### DDoS攻击 说白了就是过载,玩过炉石应该能具象出一副过载的画面吧~ 你当前回合过载了,那你下回合就得休息休息。类比服务端也是一样的。如果处理的事务过多,后面的只能耐心等待(休息)。 #### 药 我们可以限制ip的流量,有钱的话多整点服务也行,嘿嘿~ ### 总结 内容不多,但是尽量有用。 web安全是网站应用诞生的产物,一个攻一个守,本文介绍的只是冰山一角,希望能帮到有需要的人。 最近发现博客园上的图片不会自动转成自己的图床cdn地址,依然使用的外站,导致图片资源403,也是让我挺头疼了,虽然加了meta: ```html ``` 但是在部分手机浏览器上还是有问题,再贴一个防盗链文章地址吧。留给自己看~ [防盗链](https://juejin.im/post/5d2ff723518825031c37df64#heading-5) 这篇就到这啦~ 拜了个拜~ ![](https://user-gold-cdn.xitu.io/2020/4/7/17153d6c59c514f8?w=240&h=220&f=jpeg&s=7062)

加载全部内容

相关教程
猜你喜欢
用户评论