网页前端常见的攻击方式和预防攻击的方法

常见攻击

XSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入的恶意html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。但是随着前端技术的不断进步富客户端的应用越来越多,这方面的问题越来越受关注。举个简单例子 : 假如你现在是sns站点上一个用户,发布信息的功能存在漏洞可以执行js 你在 此刻输入一个 恶意脚本,那么当前所有看到你新信息的人的浏览器都会执行这个脚本弹出提示框 (很爽吧 弹出广告 :)),如果你做一些更为激进行为呢 后果难以想象。

CSRF(Cross Site Request Forgery),跨站点伪造请求。顾名思义就是 通过伪造连接请求在用户不知情的情况下,让用户以自己的身份来完成攻击者需要达到的一些目的。csrf 的攻击不同于xss csrf 需要被攻击者的主动行为触发。这样听来似乎是有“被钓鱼”的嫌疑哈哈。
多窗口浏览器这这方面似乎是有助纣为虐的嫌疑,因为打开的新窗口是具有当前所有会话的,如果是单浏览器窗口类似ie6 就不会存在这样的问题,因为每个窗口都是一个独立的进程。举个简单例子 : 你正在玩白社会, 看到有人发了一个连接,你点击过去,然后这个连接里面伪造了一个送礼物的表单,这仅仅是一个简单的例子,问题可见一般。

cookie劫持,通过获取页面的权限,在页面中写一个简单的到恶意站点的请求,并携带用户的cookie 获取cookie后通过cookie 就可以直以被盗用户的身份登录站点。这就是cookie 劫持。举个简单例子: 某人写了一篇很有意思的日志,然后分享给大家,很多人都点击查看并且分享了该日志,一切似乎都很正常,然而写日志的人却另有用心,在日志中偷偷隐藏了一个对站外的请求,那么所有看过这片日志的人都会在不知情的情况下把自己的cookie 发送给了 某人,那么他可以通过任意一个人的cookie 来登录这个人的账户。

我们该怎么做?

大致可以分为两类 1 一般用户 2网站开发人员。

首先我们来说说做为一个一般的web产品使用者,很多时候我们是被动的,是在不知情的情况下被利用的。那么我们可以:
1 对于安全级别较高的web应用访问 需要打开一个独立浏览器窗口。
2 对于陌生人发布的链接最好也是复制然后在新开的窗口中打开,当然最好的办法就是无视 – -。

对于开发人员来说我们得从相对详细的一些角度来分析:
对于xss 攻击 特点是攻击者的代码必须能获取用户浏览器端的执行权限,那么代码是从哪里来的呢,想要杜绝此类攻击出现 其实可以在入口 和出口 进行严格的过滤,这样的双保险应当说99% 的类似问题就被我们解决掉了,另外的1% 是那些蹩脚的浏览器带来的后遗症,相信在未来这种问题会越来越少的。

这里我对xss漏洞的形式作了一些整理

恶意代码值被作为某一标签的内容显示 (如果输入的是html 则html会被解析)例如你输入用户名 更新后用户名会显示到页面中的某一个标签内 如果你输入的是

popper.w<script src="hack.js" type="text/javajscript"></script>

那么如果不做过滤直接显示到页面, 会引进一个第三方的js 代码并且会执行。

策略:在不需要html输入的地方对html 标签 及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符

恶意代码被作为某一标签的属性显示(通过用 “ 将属性截断来开辟新的属性 或恶意方法) 这种情况往往是是开发人员为了实现功能可能会在某些dom标签上记录一些用户输入的信息例如你输入的用户名 会在页面中的标签中以 title 的形式出现 这时候 如果 你输入的是精心设计的内容 那么 看看 这个

<a title="popper.w" onclick="alert(1)">popper.w" onclick="alert(1)</a>

这里我实际上输入的内容是“popper.w” onclick=”alert(1)”,当然你可以在上边写更多的内容。

策略:对属性中可能存在截断的一些字符进行过滤 属性本身存在的 单引号和双引号都需要进行转码。

恶意代码被作为html代码本身显示 (常见的html编辑器) 这种情况存在的问题最多,不再这里举例子了。

策略:最好对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。

恶意代码被作为一段json字符串显示 (通过 变量截断 创造新的 恶意的js 变量 甚至是可执行的代码) 这个问题的关键是用户输入的信息可能会成为页面中js 代码的一部分。

策略:对属性中可能存在截断的一些字符进行过滤 属性本身存在的 单引号和双引号都需要进行转码。

对于crsf 和cookie 劫持

特点 隐蔽性比较高 有些时候是先利用xss 漏洞 然后再做 欺骗的

策略
通过 referer、token 或者 验证码 来检测用户提交。
尽量不要在页面的链接中暴漏任何与用户唯一号(用户id)有关的信息。
对于用户修改 删除 提交的操作最好都使用post 操作 。
避免全站通用的cookie 严格的设置cookie的域。

时间: 2024-10-13 00:47:26

网页前端常见的攻击方式和预防攻击的方法的相关文章

WEB开发中一些常见的攻击方式及简单的防御方法

WEB开发中一些常见的攻击方式及简单的防御方法 20151127 转载http://www.lvtao.net/dev/582.html SQL注入最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. 跨站脚本攻击(XSS)跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取

DDOS攻击方式总结 (转)

作者:Lemon 本人近期一直在研究DDOS攻击,并通读了<破坏之王-DDOS攻击与防范>一书,书中对于DDOS的攻击方式与防范写的很详细,很推荐阅读,并针对本书中的DDOS攻击方式做了总结. 1.攻击网络宽带资源 1.1直接攻击 使用大量的受控主机向被攻击目标发送大量的网络数据包,以沾满被攻击目标的宽带,并消耗服务器和网络设备的网络数据处理能力,达到拒绝服务的目的. 直接攻击的主要方法有ICMP/IGMP洪水攻击和UDP洪水攻击两种. 1.1.1  ICMP/UDP洪水攻击 网络控制消息协议

Web前端攻击方式及防御措施

一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的.  1.Reflected XSS 基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击.Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中.  2.Stor

【转】WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转

WEB网站常见受攻击方式及解决办法

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改用户数据.窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击 常见解决办法:确保输出到HTML页面的数据以HTML的方式被转

PHP网站常见的几种攻击方式

PHP网站建设中常见的安全威胁包括:SQL 注入.操纵 GET 和 POST 变量.缓冲区溢出攻击.跨站点脚本攻击.浏览器内的数据操纵和远程表单提交. 1.防止SQL注入攻击 在 SQL 注入攻击 中,用户通过操纵表单或 GET 查询字符串,将信息添加到数据库查询中. 例如,假设有一个简单的登录数据库.这个数据库中的每个记录都有一个用户名字段和一个密码字段.构建一个登录表单,让用户能够登录. 解决这个问题的办法是,将 PHP 的内置 mysql_real_escape_string() 函数用作

php网站常见的几种攻击方式(转)

针对 PHP 的网站主要存在下面几种攻击方式::1.命令注入(Command Injection)2.eval 注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Scripting, XSS)5.SQL 注入攻击(SQL injection)6.跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)7.Session 会话劫持(Session Hijacking)8.Sessio

常见的网站攻击方式和防护方法(小白通俗篇)

作为站长兢兢业业的编辑推广,辛辛苦苦才收点广告费,网站流量大了便会时常面对黑客的攻击,我的网站遭遇了两次因攻击死亡或瘫痪的经历,第一次是织梦CMS被博彩整站篡改网站死亡,第二次是刚刚经历的流量攻击网站多次瘫痪流量波动,故总结下常见的网站攻击方式和防护方法,以供自己和大家参见,因安全这方面我也是小白,这里以小白看得懂的语言分类编写,如总结有误或不足,望大神们不吝赐教. 第一种:网页篡改 攻击描述:针对网站程序漏洞,植入木马(webshell.跨站脚本攻击),篡改网页,添加黑链或者嵌入非本站信息,甚

全方位解读及介绍windows网络安全及常见攻击方式

本来我就是来逛逛论坛的,可是看到前面有位一样是干网络安全的同行,留下来过的痕迹,发了一篇相对不错的文章,我寻思咱既然来这一趟,也不能显得就比别人差啊.所以我也就写了这一片不算成熟小文章,望各位共勉之哈.1.网络安全的概念网络安全的定义:网络系统的硬件.软件和数据受到保护,不因偶然和恶意的原因而遭到破坏.更改和泄露,系统可以连续正常运行,网络服务不会终止. 1>.网络安全主要涉及3个方面: 硬件安全:即要保证网络设备的安全,如网络中的服务器.交换机.路由器等设备的安全. 软件和数据安全:即保证网络