资讯专栏INFORMATION COLUMN

xss注入实践和防范

JinB / 498人阅读

摘要:劫持用户是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件多数情况下是脚本代码,劫持用户浏览器,将用户当前使用的信息发送至攻击者控制的网站或服务器中。预防将录入的恶意标签进行转码再存储,主要在后端录入的时候做。

xss定义

Cross Site Scripting的缩写本来是CSS,但是这样就跟Cascading Style Sheets的缩写混淆了,所以使用XSS,使用字母X更库,而且更贴切的反应这是一种恶意攻击技术,中文名称是“跨站脚本攻击”。

原理概要:某个恶意用户发现一个网站存在XSS漏洞,该用户向此网站上传内容时,例如,提交表单,在表单中填写的不是正常的内容,而是填写恶意的Javascript代码或者能够造成网站页面中的HTML标签被恶意闭合的内容,这样其他用户浏览该页面时,嵌入其中的Javascript代码被执行或者由于恶意标签闭合造成页面逻辑的改变,都可以被利用达到攻击的目的。

造成的危害

对于那些半年没有更新的小企业网站来说,发生XSS漏洞几乎没有什么用

但是在各类的社交平台,邮件系统,开源流行的Web应用,BBS,微博等场景中,造成的杀伤力却十分强大。

劫持用户cookie是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中。

又可以称为“框架钓鱼”。利用JS脚本的基本功能之一:操作网页中的DOM树结构和内容,在网页中通过JS脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会被发送到攻击者的服务器上。

挂马(水坑攻击)

有局限性的键盘记录
......

实践注入xss

假如我有一个显示用户名的区域通过ajax获取数据然后动态innerHTML插入到一个div里显示。代码如下(伪代码)

这时图片不存在就会执行oneror事件,弹出“hello world”;如果他执行一个请求将你的cookie发给恶意网站,那你的登陆信息就全丢了。当然可以干任何他想做的事了。
以上只是举了一种xss的攻击方式。

预防xss

将录入的恶意标签进行转码再存储,主要在后端录入的时候做。前端做意义不大。 当然前端可以在展示数据的时候进行标签转码,可以做到双保险。

以下是一个工具支持前端和nodejs使用。https://jsxss.com/zh/index.html

其他后端语言如java,php都有对应的函数类使用。

博客地址: https://github.com/kokokele/k...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108237.html

相关文章

  • xss注入实践防范

    摘要:劫持用户是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件多数情况下是脚本代码,劫持用户浏览器,将用户当前使用的信息发送至攻击者控制的网站或服务器中。预防将录入的恶意标签进行转码再存储,主要在后端录入的时候做。 xss定义 Cross Site Scripting的缩写本来是CSS,但是这样就跟Cascading Style Sheets的缩写混淆了,所以使用XSS,使用字母X...

    Rango 评论0 收藏0
  • Web安全防范

    摘要:防范措施转义验证用户输入攻击指跨域请求伪造,这是一种近年来才逐渐被大众了解的攻击方式。防范措施正确使用方法令牌效验其中令牌是比较常用的方法,具体做法是在表单提交中添加一些伪随机数,即令牌,这里我们就不详细展开。 简单总结一下日常web开发中会出现的一些安全问题,以Flask框架为例 注入攻击(Injection) 注入攻击主要包括系统命令注入,SQL注入,NoSQL注入,和ORM注入等...

    hightopo 评论0 收藏0
  • 【面试篇】寒冬求职之你必须要懂的Web安全

    摘要:禁止内联脚本执行规则较严格,目前发现使用。典型的攻击流程受害者登录站点,并保留了登录凭证。站点接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是无辜的受害者发送的请求。攻击完成,攻击者在受害者不知情的情况下,冒充受害者完成了攻击。 随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至。作为前端工程师的我们也逃不开这个问题,今天一起...

    yeyan1996 评论0 收藏0
  • 【面试篇】寒冬求职之你必须要懂的Web安全

    摘要:禁止内联脚本执行规则较严格,目前发现使用。典型的攻击流程受害者登录站点,并保留了登录凭证。站点接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是无辜的受害者发送的请求。攻击完成,攻击者在受害者不知情的情况下,冒充受害者完成了攻击。 随着互联网的发展,各种Web应用变得越来越复杂,满足了用户的各种需求的同时,各种网络安全问题也接踵而至。作为前端工程师的我们也逃不开这个问题,今天...

    charles_paul 评论0 收藏0

发表评论

0条评论

JinB

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<