xss原理:

xss叫跨站脚本攻击,是Web程序中常见的漏洞只用于客户端的攻击方式,其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。所以做网站的时候要明白一个道理:用户的输入是不可信的,所有可输入的地方都要进行数据进行处理才能杜绝xss攻击;

xss攻击的二种方式:

1.反射型:一种基于网页DOM结构的攻击,该攻击特点是中招的人是少数人。通常为通过改变网页连接后面带的参数来达到他们的攻击目的;由于这种危害和范围都小我就不具体介绍了,具体看下方链接;

2.存储型:这种方式多用于评论或发布文章之类的,内容包含恶意代码(主要为script、link、style、iframe、frame);当有人把这些代码随评论发布出来,你点击查看的时候他就攻击成功;也可以通过这些代码随意改变你的页面;这种攻击方式危害性更大,危害面更广;

xss防御的三种方式:

1.编码:对用户输入的数据进行HTML entity编码

比如用户输入:<script>window.location.href=”http://www.baidu.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。

这里推荐encode.js这个三方插件对输入编码;百度找不到就去github上找;

2.过滤:移除用户上传的DOM属性和script、link、style、iframe、frame节点

比如用户输入:<style>body{display:none!important}</script>,保存后最终存储的会让你整个网页为空白页,其他同理;

if(tag=='script'||tag=='style'||tag=='link'||tag=='iframe'||tag=='frame') return;  //这样就对用户输入的几个节点过滤了

3.校正:避免直接对HTML entity编码,使用DOM Parse对象进行转换,校正不匹配的DOM标签;这里推荐domParse.js这个三方插件;

dome地址:https://github.com/MrLQZ/xss  环境为node+express

参考博客:XSS攻击及防御

转载于:https://www.cnblogs.com/lqzweb/p/7308249.html

xss原理、攻击方式与防御相关推荐

  1. XSS跨站脚本攻击原理与常见的脚本及《XSS跨站脚本攻击剖析与防御》摘录总结

    XSS跨站脚本攻击原理与常见的脚本及<XSS跨站脚本攻击剖析与防御>摘录总结 一.XSS跨站脚本攻击的原理 1.什么是XSS跨站脚本 2.跨站脚本攻击产生因素 二.XSS跨站脚本攻击的类别 ...

  2. xss攻击突破转义_WEB安全之XSS攻击方式与防御方式

    上一期给大家简单介绍XSS以及其操作,本期将带大家了解XSS比较常见的攻击方式与防御方式,一起去了解一下~ XSS 常见攻击方法 1.绕过 XSS-Filter,利用 <> 标签注入 Ht ...

  3. 《XSS跨站脚本攻击剖析与防御》—第6章6.1节参 考 文 献

    本节书摘来自异步社区<XSS跨站脚本攻击剖析与防御>一书中的第6章6.1节参 考 文 献,作者邱永华,更多章节内容可以访问云栖社区"异步社区"公众号查看. 参 考 文 ...

  4. Web前端攻击方式及防御措施

    一.XSS [Cross Site Script]跨站脚本攻击 恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户 ...

  5. XSS跨站脚本攻击剖析与防御笔记

    读书笔记,希望某位小伙伴用得上 第一章XSS初探 1.概念:Cross-Site Scripting简称XSS,是由于WEB应用程序对用户的输入过滤不足而产生的,攻击者利用网站漏洞把恶意脚本注入到网站 ...

  6. 常见web攻击方式与防御方法

    1. 客户端攻击 1.1 跨站脚本攻击(XSS) 跨站脚本攻击(XSS)是客户端脚本安全中的头号大敌.OWASP TOP 10威胁多次把XSS列在榜首. 1.1.1 XSS分类 XSS根据效果的不同可 ...

  7. php攻击方式及防御方法,Syn Flood 攻击 及其一般防御方法

    防火墙通知受到Syn Flood攻击,并解释说: A SYN Flood is an attempt to consume memory and resources. A Normal TCP/IP ...

  8. 目前最全DDOS攻击方式及防御措施,不看你就亏了!

    DDoS的攻击方式 1.Synflood 该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应. 这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没 ...

  9. 网络验证常见的攻击方式与防御手段

    目前,各种网络验证系统攻击事件层出不穷,搭过服务器的人可能都知道,DDOS攻击是中小型网络验证服务器的噩梦.基本上一打就死,而防御DDOS攻击的办法也只有一种就是硬抗,普通的DDOS硬防防火墙基本上都 ...

最新文章

  1. android 使用广播监听网络状态
  2. fetchsize jdbc_MySQL JDBC FetchSize解析
  3. Geoserver在Linux上的安装(图文教程)
  4. UI设计的扁平化图标模板素材
  5. Qemu-6.1.0多热补丁管理
  6. sorted(iterable[, key][, reverse])
  7. 【CCCC】L3-001 凑零钱 (30分),,01背包路径打印
  8. 信号与系统第四章总结
  9. 阿里巴巴优酷视频增强和超分辨率挑战赛-持续更新
  10. Java DES 加密解密工具类实现
  11. Notepad++ 替代品开源了,好用 !!!
  12. ../,./,/的区别
  13. 求解单位冲激响应的笔记
  14. 用户数据报协议(UDP)
  15. 1000个瓶子里面999瓶是水,多少次试验确定哪瓶是毒药
  16. 两年滴滴和头条的后端开发经验!字字都是肺腑之言!
  17. 高斯-克吕格(Gauss-Kruger)投影与UTM投影的区别
  18. java fix sence_repair fix mend的区别
  19. ACM训练日记—1月20日
  20. Java实现视频分类 【内链】

热门文章

  1. Android插件化原理解析——Hook机制之动态代理
  2. Android5.0源码分析—— Zygote进程分析
  3. Blind Return Oriented Programming (BROP) Attack - 攻击原理
  4. Apk去签名校验详解
  5. php伪静态教程,DedeCMS实现全站PHP伪静态
  6. JZOJ 5982. 【WC2019模拟12.27】路径排序
  7. 租赁mt4虚拟服务器,mt4服务器出租
  8. Cortex-A 的内核寄存器组
  9. 开发流媒体服务器_Github选出10大开源免费的RTSP流媒体项目
  10. 数据挖掘讲座:我所知道的一点Data Mining