如何正确防御xss攻击

html-css024

如何正确防御xss攻击,第1张

传统防御技术

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开发人员(甚至是经验丰富的开发人员)都以同样的方式处理它。

您要为这个特定的事件找出某个的父元素(或者创建一个),然后编写一个新规则来处理它。