两篇文章带你了解几种常见的Web安全攻防,希望能帮到想要了解Web安全的你。
本文是第二篇,如果你还没有阅读 常见的Web安全攻防(一),建议阅读之后,再继续阅读本文。
攻击者使用一个或多个透明的iframe 覆盖在一个正常的网页上,然后诱使用户在该网页上进行操作,当用户在不知情的情况下点击透明的iframe 页面时,用户的操作已经被劫持到攻击者事先设计好的恶意按钮或链接上。
举个简单的例子:
我想让自己掘金的关注人数变多。我先做一个网站,放满了各种免费的学习资料,写着醒目的点击免费下载。然后把掘金通过iframe的方式引入,通过一些样式的操作,使掘金的关注按钮透明的覆盖在这些学习资料上方。当用户点击下载的时候,其实点击的是我的掘金主页的关注。
** 点击劫持的特点就是有很强的隐蔽性,同时绝大部分的点击劫持都是使用一些美女图片或者黄色小视频来诱惑大家点击。所以不访问不良网站,少点击不明链接可以很大程度减少点击劫持的攻击。 **
X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 , , 或者 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。
该响应头有三个参数:
参数 | 说明 |
---|---|
deny | 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 |
sameorigin | 表示该页面可以在相同域名页面的 frame 中展示。 |
allow-from uri | 表示该页面可以在指定来源的 frame 中展示。 |
尽量保持最新的浏览器等级能及时享受一些浏览器升级带来的安全保护。使用一些扩展也能帮助我们避免很多攻击。比如 NoScript 中 ClearClick 组件能够检测和警告潜在的点击劫持攻击,自动检测页面中可能不安全的页面。
服务端未对传入的跳转url变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。
由于是从可信的站点跳转出去的,用户会比较信任,所以跳转漏洞一般用于钓鱼攻击,通过转到恶意网站欺骗用户输入用户名和密码盗取用户信息,或欺骗用户进行金钱交易。
黑客利用URL跳转漏洞来诱导安全意识低的用户点击,导致用户信息泄露或者资金的流失。其原理是黑客构建恶意链接(链接需要进行伪装,尽可能迷惑),发在QQ群或者是浏览量多的贴吧/论坛中。
安全意识低的用户点击后,经过服务器或者浏览器解析后,跳到恶意的网站中。
如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。
我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
严格限制Web应用的数据库的操作权限,给此用户提供仅仅能够满足其工作的最低权限,从而最大限度的减少注入攻击对数据库的危害。
对进入数据库的特殊字符(’,",,<,>,&,*,; 等)进行转义处理,或编码转换。
后端可以利用正则等手段判断数据的输入是否符合预期。这个也在很大程度上阻止了SQL注入攻击。
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options
https://www.cnblogs.com/fundebug/p/details-about-6-web-security.html
http://huaidan.org/archives/2022.html