传统防御技术
2.1.1基于特征的防御
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
2.1.2 基于代码修改的防御
和SQL注入防御一样,XSS攻击也是利用了Web页面的编写疏忽,所以还有一种方法就是从Web应用开发的角度来避免:
1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
当然,如上方法将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。
并且考虑到很少有Web编码人员受过正规的安全培训,很难做到完全避免页面中的XSS漏洞。
扩展资料:
XSS攻击的危害包括
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
受攻击事件
新浪微博XSS受攻击事件
2011年6月28日晚,新浪微博出现了一次比较大的XSS攻击事件。
大量用户自动发送诸如:
“郭美美事件的一些未注意到的细节”,“建党大业中穿帮地方”,“让女人心动的100句诗歌”,“这是传说中的神仙眷侣啊”等等微博和私信,并自动关注一位名为hellosamy的用户。
事件的经过线索如下:
20:14,开始有大量带V的认证用户中招转发蠕虫
20:30,某网站中的病毒页面无法访问
20:32,新浪微博中hellosamy用户无法访问
21:02,新浪漏洞修补完毕
百度贴吧xss攻击事件
2014年3月9晚,六安吧等几十个贴吧出现点击推广贴会自动转发等。并且吧友所关注的每个关注的贴吧都会转一遍,病毒循环发帖。并且导致吧务人员,和吧友被封禁。
参考资料:
XSS攻击-百度百科
Java和css是没有任何关系的,Java是一个强类型的变成语言二css是网页前端设置网页样式的标记语言,所以两者没关系。1、Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2、css是叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
css架构是我们在进行网页开发的时候需要使用的重要编程代码之一,而今天我们就一起来了解一下,一个好的css架构都应该具有哪些特点,下面就开始今天的主要内容吧。
我认为好的CSS架构的目标应该与所有好的软件开发的目标没有太大的区别。
我希望我的CSS是可预测的、可重用的、可维护的和可扩展的。
可被预测可预测的CSS意思是您的规则能按照您预想的方式运行。
当您添加或更新一个规则时,它不应该影响您的站点中您不想影响的部分。
在很少改变的小站点上,这并不重要,但在有数十或数百个页面的大站点上,可预测的CSS是必须的。
可复用CSS规则应该足够抽象和可被解耦的,您不必对已经解决的模式和问题进行重新编码,可以依靠现有的部分快速构建新的组件。
可维护当您的站点需要添加、更新或重新安排新的组件和特性时,这样做不需要重构现有的CSS。
向页面中添加某组件甲不应该破坏某组件乙。
可扩展随着站点的规模和复杂性的增长,通常需要更多的开发人员来维护。
可扩展的CSS意味着它可以由一个人或一个大型工程团队轻松管理。
这也意味着您的站点的CSS架构不需要大量的学习曲线就可以轻松学习掌握。
不能因为您是目前维护CSS的开发人员,就不考虑以后的变化。
常见的糟糕实践在我们寻找如何实现好的CSS体系结构目标的方法之前,我认为看看妨碍我们实现目标的常见实践是有帮助的。
只有通过了解那些不断重复的错误,我们才能开始接受另一种路径。
虽然在技术上是有效的,但它们的结果都导致了灾难和头痛。
尽管我的本意是好的,而且希望每次的开发会有所不同,但这些模式持续让我陷入困境。
根据组件的父类修改组件几乎在Web上的每个站点中都有一个特定的视觉元素,它与每个事件看起来完全相同,只有一个例外。
陕西北大青鸟http://www.kmbdqn.cn/认为当遇到这种一次性的情况时,几乎每一个新的CSS开发人员(甚至是经验丰富的开发人员)都以同样的方式处理它。
您要为这个特定的事件找出某个的父元素(或者创建一个),然后编写一个新规则来处理它。