王朝百科
分享
 
 
 

跨网站指令码

王朝百科·作者佚名  2010-05-13  
宽屏版  字体: |||超大  

跨网站指令码(Cross-site scripting,通常简称为XSS)是一种网站应用程式的安全漏洞攻击,允许恶意使用者将程式码注入到网页上,其他使用者在观看网页时就会受到影响。这类攻击通常包含了HTML以及使用者端脚本语言。

目录1 背景

2 缩写

3 测试方法

4 实例

5 避免的方法

5.1 程式设计方面

5.2 使用者方面

背景当网景(Netscape)最初推出JavaScript语言时,他们也察觉到准许网页伺服器传送可执行的程式码给一个浏览器的安全风险(即使仅是在一个浏览器的沙盒里)。它所造成的一个关键的问题在于使用者同时开启多个浏览器视窗时,在某些例子里,网页里的片断程式码被允许从另一个网页或物件取出资料,而因为恶意的网站可以用这个方法来尝试窃取机密资讯,所以在某些情形,这应是完全被禁止的。为了解决这个问题,浏览器采用了与最初相同的决策──允许来自相同网域名称系统和使用相同协定的物件与网页之间的任何互动。这样一来,恶意的网站便无法借由JavaScript在另一个浏览器窃取机密资料。此后,为了保护使用者免受恶意的危害,其他的浏览器与伺服端指令语言采用了类似的存取控制决策。一般而言,跨网站指令码的漏洞常见于网页允许攻击者通过这些机制的弱点。由于发现了巧妙的注入恶意的指令码到由其他网域服务的网页方法,攻击者可得到了更高的特权,窃取机密的网页内容、会谈的cookie、以及许多其他的物件。

缩写Cross-site scripting的缩写是CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading Style Sheets),所以将Cross改以发音相近的X做为缩写。但早期的文件还是会使用CSS表示Cross-site scripting。

测试方法通常有一些方式可以测试网站是否有正确处理特殊字元:

><script>alert(document.cookie)</script>

='><script>alert(document.cookie)</script>

<script>alert(document.cookie)</script>

<script>alert(vulnerable)</script>

%3Cscript%3Ealert('XSS')%3C/script%3E

<script>alert('XSS')</script>

<img src="javascript:alert('XSS')">

<img src="http://xxx.com/yyy.png" onerror="alert('XSS')">

<div style="height:expression(alert('XSS'),1)" />(这个仅限 IE 有效)

使用者可做一个网页,试着用JavaScript把document.cookie当成参数丢过去,然后再把它记录下来,这即是偷 cookie 。

XSS攻击方法有:

偷 cookie 。

利用 iframe 或 frame 存取管理页面或后台页面。

利用 XMLHttpRequest 存取管理页面或后台页面。

实例网路上的一些知名网站如Google、MySpace、Xuite以及无名小站等曾被发现到XSS漏洞。

程式设计方面避免XSS的方法主要是将使用者所提供的内容进行过滤,许多语言都有提供对HTML的过滤:

PHP的htmlentities()或是htmlspecialchars()。

Python的cgi.escape()。

ASP的Server.HTMLEncode()。

ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library

使用者方面包括Internet Explorer、Mozilla Firefox在内的常用浏览器皆有关闭JavaScript的功能,但关闭未必是最好的方法,许多网站都会使用JavaScript语言。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有