前端安全系列:如何防止XSS攻击?
修复后的代码如下:
通过这个变乱,小明进修到了如下常识:
裂痕总结 小明的例子讲完了,下面我们来体系的看下 XSS 有哪些注入的要领:
总之,假如开拓者没有将用户输入的文本举办吻合的过滤,就贸然插入到 HTML 中,这很轻易造成注入裂痕。进攻者可以操作裂痕,结构出恶意的代码指令,进而操作恶意代码危害数据安详。 XSS 进攻的分类 通过上述几个例子,我们已经对 XSS 有了一些熟悉。 什么是 XSS Cross-Site Scripting(跨站剧本进攻)简称 XSS,是一种代码注入进攻。进攻者通过在方针网站上注入恶意剧本,使之在用户的赏识器上运行。操作这些恶意剧本,进攻者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安详。 为了和 CSS 区分,这里把进攻的第一个字母改成了 X,于是叫做 XSS。 XSS 的本质是:恶意代码未颠末滤,与网站正常的代码混在一路;赏识器无法判别哪些剧本是可信的,导致恶意剧本被执行。 而因为直接在用户的终端执行,恶意代码可以或许直接获取用户的信息,可能操作这些信息假充用户向网站提倡进攻者界说的哀求。 在部门环境下,因为输入的限定,注入的恶意剧本较量短。但可以通过引入外部的剧本,并由赏识器执行,来完成较量伟大的进攻计策。 这里有一个题目:用户是通过哪种要领“注入”恶意剧本的呢? 不只仅是营业上的“用户的 UGC 内容”可以举办注入,包罗 URL 上的参数等都可所以进攻的来历。在处理赏罚输入时,以下内容都不行信:
XSS 分类 按照进攻的来历,XSS 进攻可分为存储型、反射型和 DOM 型三种。
存储型 XSS 存储型 XSS 的进攻步调:
这种进攻常见于带有效户生涯数据的网站成果,如论坛发帖、商谈论论、用户私信等。 反射型 XSS 反射型 XSS 的进攻步调:
反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。 反射型 XSS 裂痕常见于通过 URL 转达参数的成果,如网站搜刮、跳转等。 因为必要用户主动打开恶意的 URL 才气见效,进攻者每每会团结多种本领诱导用户点击。 POST 的内容也可以触发反射型 XSS,只不外其触发前提较量苛刻(必要结构表单提交页面,并引导用户点击),以是很是少见。 DOM 型 XSS DOM 型 XSS 的进攻步调:
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 进攻中,取出和执行恶意代码由赏识器端完成,属于前端 JavaScript 自身的安详裂痕,而其他两种 XSS 都属于处事端的安详裂痕。 XSS 进攻的提防 通过前面的先容可以得知,XSS 进攻有两大体素:
针对第一个要素:我们是否可以或许在用户输入的进程,过滤掉用户输入的恶意代码呢? 输入过滤 在用户提交时,由前端过滤输入,然后提交到后端。这样做是否可行呢? 谜底是不行行。一旦进攻者绕过前端过滤,直接结构哀求,就可以提交恶意代码了。 那么,换一个过滤机缘:后端在写入数据库前,对输入举办过滤,然后把“安详的”内容,返回给前端。这样是否可行呢? 我们举一个例子,一个正常的用户输入了 5 < 7 这个内容,在写入数据库前,被转义,酿成了 5 < 7。 题目是:在提交阶段,我们并不确定内容要输出到那边。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |