生活消费
10.XSS的防御措施 XSS 攻击的防御措施主要包括以下几个方面:
2024-12-31 15:43


XSS(Cross-Site scripting,中文意为跨站脚本攻击,是一种常见的 Web 安全漏洞。攻击者通过在页面中插入恶意脚本,利用用户浏览器对页面的信任,获取用户的敏感信息或进行其他恶意操作。XSS 分为存储型、反射型和 DOM 型三种类型。存储型 XSS 攻击是指将用户提交的恶意脚本存储在服务器端,当受害者访问该页面时,恶意脚本会被执行。反射型 XSS 攻击是指将恶意脚本作为参数传递给服务器端,服务器端将恶意脚本反射到页面中,当受害者访问该页面时,恶意脚本会被执行。DOM 型 XSS 攻击是指恶意脚本修改了页面中的 DOM 结构,从而达到攻击的目的。为了避免 XSS 攻击,开发人员应对用户输入做严格的限制和过滤,同时对输出的内容进行转义等安全措施。

XSS 的原理是利用用户浏览器对页面信任的特性,注入恶意脚本并使其在浏览器中执行。XSS 攻击主要有三种方式

  1. 存储型 XSS:恶意脚本被存储在服务器端,用户请求页面时,服务器返回页面内容,用户浏览器解析页面时会执行恶意脚本。
  2. 反射型 XSS:恶意脚本作为参数传递给服务器,服务器将恶意脚本返回给浏览器,浏览器解析页面时会执行恶意脚本。
  3. DOM 型 XSS:恶意脚本通过修改页面的 DOM 结构而执行,它与前两种攻击方式的区别在于,恶意脚本不需要被保存在服务器或反射到页面中,而是直接在页面中被执行。

攻击者利用了页面中存在的漏洞或弱点,通过插入恶意脚本来进行攻击。常见的漏洞或弱点包括未过滤用户输入、未对输出内容进行转义等。对于开发人员来说,为了避免 XSS 攻击,需要对用户输入进行限制和过滤,同时对输出的内容进行转义等安全措施。

 
 

XSS 攻击的利用方式主要有以下几种

  1. 窃取用户信息:攻击者插入恶意脚本,利用 Javascript 获取用户的敏感信息,如用户的 cookie、登录凭证等,并发送给攻击者。
  2. 劫持用户会话:攻击者修改页面内容,让用户在不知情的情况下完成某项操作或转账等,从而达到攻击者获利的目的。
  3. 恶意重定向:攻击者通过恶意脚本进行重定向,将用户重定向到钓鱼网站或恶意网站上,进而进行其他的攻击。
  4. 攻击其他用户:攻击者在网站中注入恶意脚本后,可以在用户之间进行攻击传染,如病毒一般扩散。
  5. 篡改网页内容:攻击者可以利用 XSS ,篡改目标网页的内容,插入恶意广告或进行其他修改。

开发人员可以通过采用以下措施来保护网站免受 XSS 攻击的影响

  • 对所有用户输入的数据进行必要的过滤和转义
  • 不要信任客户端提交的数据,对数据进行严格的验证
  • 采用安全框架,限制网站 Javascript 等的访问权限
  • 将敏感信息使用加密算法进行加密存储,避免泄露敏感信息。
  • 定期对网站进行渗透测试和漏洞扫描,及时发现和解决 XSS 漏洞。

一些常用的标签与属性

常见的 XSS 攻击方式有以下几种

  1. 插入标签触发 XSS:攻击者在被攻击网站的输入框或 URL 中注入恶意脚本,浏览器解析页面时会执行注入的 Javascript 代码。
  2. 插入外链触发 XSS:攻击者在被攻击网站的输入框或 URL 中插入外部 Javascript 文件,浏览器加载外部 Javascript 文件时会执行其中的恶意代码。
  3. 拼接注入触发 XSS:攻击者将恶意代码拼接在被攻击网站中原有的 Javascript 代码行中,从而触发 XSS 攻击。
  4. 跨站脚本攻击(XSS)和跨站点请求伪造攻击(CSRF)配合使用:攻击者在被攻击网站中注入跨站脚本代码,以窃取用户的信息或者伪造用户请求。
  5. 其他攻击方式:例如基于HTML5的XSS利用、基于DOM的XSS利用等。

开发人员可以通过采取以下措施来预防 XSS 攻击

  • 对用户的输入进行过滤,并且使用不同的方式对用户输入进行转义。
  • 使用记住用户闪现的方式,避免在浏览器端存储敏感信息。
  • 避免将不可信任的数据直接拼接在 HTML 代码中,使用编程语言提供的字符串拼接函数。
  • 禁止以 JSON 的形式返回纯文本数据,改为以 text/json 或者 application/json 类型返回数据。
  • 每次最小权限原则,将敏感信息,比如密码,加密保存。
  • 避免在 POST 请求中使用 URL 向服务器发送参数,因为这些参数很容易被劫持,导致 XSS 攻击。

下面我列举的标签大部分是可以自动触发js代码的,无需用户去交互,大部分情况下我们也是希望是自动触发而不是等用户去触发。

1.scirpt 标签

 

2.img 标签

 

3.input 标签

 

竞争焦点,从而触发onblur事件

 

input 标签的 autofocus 属性规定当页面加载时 元素应该自动获得焦点。可以通过autofocus属性自动执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发

 

4.details 标签

 

使用details 标签的 open 属性触发ontoggle事件,无需用户去点击即可触发

 

5.svg 标签

 

6.select 标签

 

7.iframe 标签

 

8.video 标签

 

9.audio 标签

 

10.body 标签

 

onscroll 事件在元素滚动条在滚动时触发。我们可以利用换行符以及autofocus,当用户滑动滚动条的时候自动触发,无需用户去点击触发

 

11.textarea 标签

 

12.keygen 标签

 

13.marquee 标签

 

14.isindex 标签

 
 

1.空格过滤

当空格被过滤了时,我们可以用 / 来代替空格

 

2.引号过滤

 

3.括号过滤

当括号被过滤的时候可以使用throw来绕过。throw 语句用于当错误发生时抛出一个错误。

 

4.关键字过滤 大小写绕过

 

双写绕过

有些waf可能会只替换一次且是替换为空,这种情况下我们可以考虑双写关键字绕过

 

5.字符串拼接绕过

利用eval()函数

与PHP的eval()函数相同,Javascript的eval()函数也可以计算 Javascript 字符串,并把它作为脚本代码来执行。

 

6.编码绕过

 

7.过滤url地址

 

8.单引号闭合+htmlspecialchars函数绕过

 

9.Javascript伪协议

 
 

1.什么是HttpOnly?

如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索

2.javaEE的API是否支持?

目前sun公司还没有公布相关的API,但PHP、C#均有实现。搞javaEE的兄弟们比较郁闷了,别急下文有变通实现

3.HttpOnly的设置样例

javaEE response.setHeader(“Set-cookie”, “cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly”);

具体参数的含义再次不做阐述,设置完毕后通过js脚本是读不到该cookie的,但使用如下方式可以读取 cookie cookies[]=request.getcookies();

 

但是在 .NET 1.1 ,中您需要手动添加 Response.cookies[cookie].Path += “;HTTPOnly”;

 

最后一个参数为HttpOnly属性

1.标签语法替换

 

2.特殊符号干扰

3.提交方式更改

4.垃圾数据溢出

5.加密解密算法

6.结合其他漏洞绕过

下面的列表包含了可绕过的WAF、Paylaod以及相关的绕过技术

 
 

1.测试一个使用GET方法的网页

 

2.测试POST数据

 

3.测试URL路径

 

4.从目标网页开始搜寻目标并进行测试

 

您可以指定爬网的深度,默认2:-l

 

5.如果要测试文件中的URL,或者只是想添加种子进行爬网,则可以使用该–seeds选项

 

6.查找隐藏的参数

通过解析HTML和暴力破解来查找隐藏的参数

 

7.盲XSS:爬行中使用此参数可向每个html表单里面的每个变量插入xss代码

 

8.模糊测试–fuzzer

该模糊器旨在测试过滤器和Web应用程序防火墙,可使用-d选项将延迟设置为1秒。

 

9.跳过DOM扫描

在爬网时可跳过DOM XSS扫描,以节省时间

 

10.更新

如果跟上–updata选项,XSStrike将检查更新。如果有更新的版本可用,XSStrike将下载更新并将其合并到当前目录中,而不会覆盖其他文件。

 
 
  1. 输入过滤:对用户提交的数据进行过滤和转义,将危险的字符(如 <、> 等)进行转义或删除,过滤掉不合法的字符,从而避免恶意脚本代码被插入到页面中。 
  2. 输出编码:对于输出到页面中的字符(如表单内容、URL 参数等)进行 HTML、Javascript、CSS 编码处理,从而避免恶意脚本代码在执行时被误认为是真实的页面代码。
  3. 合理设置 cookie:对于 cookie 中存储的敏感信息,如用户名、密码等,如果不必要,应该避免使用 cookie 进行存储。
  4. Httponly 和 secure 标记:对于 cookie,应该在服务器端使用 Httponly 标记,防止客户端通过 Javascript 对 cookie 进行操作;同时,在需要使用使用 SSL/TLS 协议时,应该对 cookie 增加 secure 标记,以避免 cookie 被中间人攻击劫持。
  5. CSP(Content Security Policy:使用 CSP 配置指导浏览器加载资源,限制页面中的 Javascript 只能从指定的域名和资源中加载,从而有效防御 XSS 攻击。
  6. 操作权限控制:在应用程序中,需要对用户操作进行权限控制,只有拥有足够权限的用户才能进行相应操作。
  7. 安全的编程模式和框架:采用安全的编程模式和框架,避免使用 eval()、document.write()、innerHTML 等危险函数,同时应该定期更新和升级各种软件和库,避免使用过时的版本产生安全漏洞。
  8. 定期进行安全测试:开发人员应该定期进行安全测试,尽早发现和修复系统中的安全漏洞,同时应该了解最新的安全攻击技术和防御措施,从而保障系统的安全性。

    以上就是本篇文章【10.XSS的防御措施 XSS 攻击的防御措施主要包括以下几个方面:】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/17201.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
智能机器人与未来科技展新一批展商重磅来袭!
前言4月25-26日。为进一步赋能人形机器人产业高质量发展,加速其在更多领域实现应用落地,由中国机器人网精心筹备的“2025中国人
*ST信通股票连续3个交易日涨幅超12%
雷达财经 文|冯秀语 编|李亦辉4月15日,亿阳信通股份有限公司(证券代码:600289,证券简称:)发布公告,提示公司股票交易风险
小米电脑开不了机是怎么回事小米手机开不了机怎么回事「小米电脑开不了机是怎么回事」
就像有的值友说的,大妈原创拆机的多了,解毒的内容没以前多了。那up就来厚一发脸皮,解毒解毒,顺便也聊一聊个人的笔记本选购原
胡代库雷耶夫:加强跨境合作,推动亚太地区数据安全可持续发展
  光明网讯(记者 张璋)4月14日,以“数智融合引领未来——携手构建网络空间命运共同体”为主题的2025年世界互联网大会亚太峰
“敦煌五乐神”在贵阳奏响!谭盾携贵阳交响乐团共谱中西乐章
4月11日,作曲家兼指挥家谭盾执棒贵阳交响乐团,携手敦煌古乐团以敦煌五乐神为主题,将奚琴、尺八、筚篥、唐笙、五弦琵琶五件敦
白酒A股本周5家上涨 回购股份和股东增持酒企将增加
2025年4月11日,本周的交易盘结束。数据显示,20只白酒A股5家上涨。、、分别以1.51%、1.30%、0.65%,列周涨幅前三。业内人士指出
火勇大战库里3分,追梦整活弄巧成拙
在过去三场拿到125分,投进23记三分之后,迎来了一场彻底被封锁的比赛。火勇大战绝对是你不能错过的对决,新仇旧怨堆积在一起,
杀毒清理大师 2.6.6手机管家清理大师「杀毒清理大师 2.6.6」
杀毒清理大师安卓版是一款专业的手机清理工具,杀毒清理大师安卓版是可以一键清理用户手机中的垃圾和病毒的手机管家,杀毒清理大
连涨5天,后市怎么看?
4月14日,A股三大指数午盘集体收涨,市场呈现普涨格局。盘面上仅少数板块回调,市场赚钱效应显著扩散。随着美国关税政策边际缓和
霍挂洗白徐总背锅,唐三亲临大陆见霍雨浩,江楠楠后门被删
导语:近期绝世唐门出现一些重磅剧情,其中包括大家关心的明都大爆炸和问情谷内容,唐三竟然也亲自会见了霍雨浩。关注云漫菌,看