常见Web安全漏洞(二)

两篇文章带你了解几种常见的Web安全攻防,但愿能帮到想要了解Web安全的你。html

本文是第二篇,若是你尚未阅读 常见的Web安全攻防(一),建议阅读以后,再继续阅读本文。web

1、点击劫持

攻击者使用一个或多个透明的iframe 覆盖在一个正常的网页上,而后诱使用户在该网页上进行操做,当用户在不知情的状况下点击透明的iframe 页面时,用户的操做已经被劫持到攻击者事先设计好的恶意按钮或连接上。数据库

举个简单的例子:后端

我想让本身掘金的关注人数变多。我先作一个网站,放满了各类免费的学习资料,写着醒目的点击免费下载。而后把掘金经过iframe的方式引入,经过一些样式的操做,使掘金的关注按钮透明的覆盖在这些学习资料上方。当用户点击下载的时候,其实点击的是个人掘金主页的关注。浏览器

** 点击劫持的特色就是有很强的隐蔽性,同时绝大部分的点击劫持都是使用一些美女图片或者黄色小视频来诱惑你们点击。因此不访问不良网站,少点击不明连接能够很大程度减小点击劫持的攻击。 **安全

如何防护?

1. X-FRAME-OPTIONS

X-Frame-Options HTTP 响应头是用来给浏览器 指示容许一个页面 能否在 , , 或者 中展示的标记。站点能够经过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。 服务器

该响应头有三个参数:markdown

参数 说明
deny 表示该页面不容许在 frame 中展现,即使是在相同域名的页面中嵌套也不容许。
sameorigin 表示该页面能够在相同域名页面的 frame 中展现。
allow-from uri 表示该页面能够在指定来源的 frame 中展现。

2.浏览器和扩展

尽可能保持最新的浏览器等级能及时享受一些浏览器升级带来的安全保护。使用一些扩展也能帮助咱们避免不少攻击。好比 NoScript 中 ClearClick 组件可以检测和警告潜在的点击劫持攻击,自动检测页面中可能不安全的页面。oop

2、URL跳转漏洞

服务端未对传入的跳转url变量进行检查和控制,可能致使可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。post

因为是从可信的站点跳转出去的,用户会比较信任,因此跳转漏洞通常用于钓鱼攻击,经过转到恶意网站欺骗用户输入用户名和密码盗取用户信息,或欺骗用户进行金钱交易。

黑客利用URL跳转漏洞来诱导安全意识低的用户点击,致使用户信息泄露或者资金的流失。其原理是黑客构建恶意连接(连接须要进行假装,尽量迷惑),发在QQ群或者是浏览量多的贴吧/论坛中。 安全意识低的用户点击后,通过服务器或者浏览器解析后,跳到恶意的网站中。

如何防护?

1.referer限制

若是肯定传递URL参数进入的来源,咱们能够经过该方式实现安全限制,保证该URL的有效性,避免恶意用户本身生成跳转连接。

2.加入有效性验证Token

咱们保证全部生成的连接都是来自于咱们可信域的,经过在生成的连接里加入用户不可控的Token对生成的连接进行校验,能够避免用户生成本身的恶意连接从而被利用,可是若是功能自己要求比较开放,可能致使有必定的限制。

3、SQL注入

SQL注入便是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者能够在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的状况下实现非法操做,以此来实现欺骗数据库服务器执行非受权的任意查询,从而进一步获得相应的数据信息。

如何防护?

1.权限最小化

严格限制Web应用的数据库的操做权限,给此用户提供仅仅可以知足其工做的最低权限,从而最大限度的减小注入攻击对数据库的危害。

2.字符转义

对进入数据库的特殊字符(',",,<,>,&,*,; 等)进行转义处理,或编码转换。

3.检测数据

后端能够利用正则等手段判断数据的输入是否符合预期。这个也在很大程度上阻止了SQL注入攻击。

参考网址

developer.mozilla.org/zh-CN/docs/…

www.cnblogs.com/fundebug/p/…

huaidan.org/archives/20…