web 安全问题(二):XSS攻击

上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击。

什么是XSS攻击

XSS攻击的原理

XSS攻击的方法

XSS攻击防御的手段

什么是XSS攻击

XSS攻击全名(Cross-Site-Script)跨域脚本攻击,为了跟CSS(Cascading-Style-Sheet)区分开来,所以缩写是XSS。

XSS攻击的原理

上一节说道的CSRF攻击是利用的是“伪请求”,这一节的XSS的原理是利用脚本注入的方式。

主要是依靠一切可能的手段,将浏览器中可以执行的脚本(javascript)植入到页面代码中,从而获取用户cookie甚至账号密码等敏感数据使用户造成的一定的损失。

通常利用的是目标网站的发帖、发布产品等需要用户输入的地方,将脚本混淆到html输入中,上传到服务器,再诱导别的用户打开此页面,执行脚本的一个过程。

XSS攻击的方法

xss漏洞是对web客户端(浏览器)的攻击,所以说植入的代码基本上以javascript和html标签(有时也有结合css样式的xss向量)为主。

一般有四种方法:

  1. 页面标签附带脚本
  2. Dom 属性附带脚本
  3. 请求地址附带脚本
  4. 回车空格突破过滤限制

举两个小李子:

<script>alert(‘xss‘)</script>

<img scr=1 onerror=alert(‘xss‘)>

<a href=javascrip:alert(‘xss‘)>s</a>

<iframe src=javascript:alert(‘xss‘);height=0 width=0 />

<img src=x onerror=appendChild(createElement(‘script‘)).src=‘js_url‘ />

<img src = “#”/**/onerror = alert(/XSS/)>
<img src = j
ava script :a ler t(/xss/)>

XSS攻击防御的手段

因为XSS的根本就是向网站插入脚本代码,并使它运行的一种手段。防御方法分为两种,服务端防御和客户端防御。

服务端防御:

1. HttpOnly

可以限制javascript不能读取cookie,防止会话ID泄露

2.处理富文本

过滤掉富文本中的敏感标签如(script、iframe、form),还有敏感词(javascript:) 等等

客户端防御:

1. 输入检查

防止输入敏感字段,如javascript、cookie等等

2. 检查输出

脚本都是通过混淆在HTML当中,被当成html代码的一部分才得到执行。

可以通过编码转义的办法,使得混淆在其中的脚本被当成文本处理,不会被执行。

编码转义的话,有三种方法:

1. HTML encode

将字符转换成HTMLEntities,一般会转(&、<、>、"、‘、/)这6个字符。一般是在html标签属性输出的时候使用

2. JavaScriptEncode

使用”“对特殊字符进行转义。

一般在script标签输出、事件输出、CSS输出

3. URL Encode

使用URLEncode的方法。

参考:

XSS的原理分析与解剖

跨站脚本攻击(XSS)——常见网站攻击手段原理与防御

XSS攻击及防御

XSS攻击的解决方法

原文地址:https://www.cnblogs.com/djh-create/p/8157126.html

时间: 2024-08-09 05:06:24

web 安全问题(二):XSS攻击的相关文章

web安全之XSS攻击原理及防范

阅读目录 一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protection设置 3. XSS防御HTML编码 4. XSS 防御HTML Attribute编码 5. XSS防御之javascript编码 6. XSS 防御之 URL 编码 7. XSS 防御之 CSS 编码 8. 开启CSP网页安全政策防止XSS攻击 回到顶部 一:什么是XSS攻击? XSS 即(

web安全(xss攻击和csrf攻击)

1.CSRF攻击: CSRF(Cross-site request forgery):跨站请求伪造. (1).攻击原理: 如上图,在B网站引诱用户访问A网站(用户之前登录过A网站,浏览器 cookie 缓存了身份验证信息), 通过调用A网站的接口攻击A网站. (2).防御措施: 1)token验证:登陆成功后服务器下发token令牌存到用户本地,再次访问时要主动发送token,浏览器只能主动发cookie,做不到主动发token 2)referer验证:判断页面来源是否自己站点的页面,不是不执行

WEB安全实战(二)带你认识 XSS 攻击

前言 上一篇文章写了关于 WEB 安全方面的实战,主要是解决 SQL 盲注的安全漏洞.这篇文章本来是要写一篇关于如何防治 XSS 攻击的,但是想来想去,还是决定先从理论上认识一下 XSS 吧.下一篇文章,再深入研究如何防治的问题. 概念 到底什么是 XSS 攻击呢?XSS 攻击,全称是"跨站点脚本攻击"(Cross Site Scripting),之所以缩写为 XSS,主要是为了和"层叠样式表"(Cascading Style Sheets,CSS)区别开,以免混淆

Web安全之XSS跨站脚本攻击

本文主要选择常见web攻击手段之一的XSS(跨站点脚本攻击)来进行讲解,说明其攻击原理,并提出相应的解决办法. XSS XSS 攻击,全称是"跨站点脚本攻击"(Cross Site Scripting),之所以缩写为 XSS,主要是为了和"层叠样式表"(Cascading Style Sheets,CSS)区别开,以免混淆. XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其他用户使用的页面中.XSS是针对Web站点的客户隐

使用 PHP 构建的 Web 应用如何避免 XSS 攻击

本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态内容进行编码.以及在服务器端对输入进行检测两方面介绍如何避免恶意的 XSS 攻击. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击 Web 2.0 的发展为网络用户的互动提供了更多机会.用户通过在论坛发表评论,或是在博客发表留言都可能有意或无意输入一些破坏性的内容,从而造成网页不能正常显示

XSS攻击-原理学习

本文优先发布于简书https://www.jianshu.com/p/04e0f8971890 1.百度百科XSS,跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆.因此,通常将跨站脚本攻击缩写为XSS.XSS攻击,通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序.这些恶意网页程序通常是JavaScript,但实际上也可以

6.XSS攻击方式及防御措施

一.前端XSS攻击分类 1.什么是XSS攻击 XSS允许恶意的web用户将代码植入到提供给其他用户使用的页面中 2.XSS分类 反射型(非持久型)XSS 存储型(持久型)XSS DOM-Basedx型 XSS (1)反射型XSS 攻击方式:诱导用户点击率一些带恶意脚本参数的URL,而服务器直接使用了恶意脚本并返回了结果页,从而导致恶意代码在浏览器执行 (2)持久型XSS 攻击方式:将恶意代码上传或存储到了漏洞服务器上,用户访问页面时,页面中包含了恶意脚本 (3)DOM-Basedx型XSS 攻击

Web应用进行XSS漏洞测试

转自:http://www.uml.org.cn/Test/201407161.asp 对 WEB 应用进行 XSS 漏洞测试,不能仅仅局限于在 WEB 页面输入 XSS 攻击字段,然后提交.绕过 JavaScript 的检测,输入 XSS 脚本,通常被测试人员忽略.下图为 XSS 恶意输入绕过 JavaScript 检测的攻击路径. 常见的 XSS 输入 XSS 输入通常包含 JavaScript 脚本,如弹出恶意警告框:<script>alert("XSS");<

WEB安全实战(三)XSS 攻击的防御

前言 上篇文章中提到了 XSS 攻击,而且,也从几个方面介绍了 XSS 攻击带来的严重影响.那么,这篇文章中,主要是针对 XSS 攻击做一个基本的防御,看看可以通过几种方式来修复这个特别常见的安全漏洞. 由于公司用的是 SpringMVC,因此,这次就主要基于 SpringMVC 来解决这些漏洞.当然,其实这些解决方案都是大同小异,对于什么环境来说根本无所谓.了解了原理,什么环境.什么语言都可以运用自如了.废话就不多说了,直接上解决方案. 解决方案 方案一 方案一主要是利用了 SpringMVC