《OWASP代码审计》学习——跨站脚本注入(XSS)

news2024/11/16 21:39:05

一、跨站脚本概述

1.什么是跨站脚本

跨站点脚本(XSS)是一种编码注入漏洞。它通常出现在 web 应用程序中。XSS 使攻击者能够向其他用户浏览的网页中注入恶意内容。XSS 允许攻击者绕过访问控制,它是 OWASP Top10 最常见的漏洞之一。XSS 是网络服务器上的第二大漏洞。根据易受攻击站点处理的数据的敏感性和站点组织实施的任何安全缓解措施的性质,此漏洞的严重性/风险可能从有害到主要安全风险不同等级

2.类型

有三种类型的 XSS,反射 XSS,存储 XSS,和基于 DOM 的 XSS。每种类型都有不同的方式向服务器传递恶意负载。攻击的效果是一样的。

3.审计内容

跨站点脚本漏洞很难从 web 应用程序中识别和移除。搜索缺陷的最佳实践是执行严格的代码审计,并搜索用户通过 HTTP 输入的内容可能在任何系统 HTML 输出的地方。

(1)不受信任的数据不会像超文本标记语言或 JavaScript 那样在相同的超文本传输协议响 应中传输。 (2)当数据从服务器传输到客户端时,不可信的数据和 HTTP 响应必须被正确编码。不要假 设服务器上的数据是安全的。最佳做法是始终审计数据。 (3)当引入到 DOM 中时,不可信数据必须使用以下应用编程接口之一来引入: a) Node.textContent b) document.createTextNode c) Element.setAttribute(仅第二个参数) 代码审计者也应该知道 HTML 标签(比如< img src…>,< iframe…>,< bgsound src…>等。可以用来传输恶意的 JavaScript。网络应用程序漏洞自动工具/扫描仪可以帮助发现跨站点脚本漏洞。然而,他们无法找到所有的 XSS 漏洞,因此手动代码审计很重要。手动代码审计也不能涵盖所有内容,但是基于您的风险水平,实施深度防御方法始终是最好的方法。OWASP Zed 是一个易于使用的集成渗透测试工具,用于发现网络应用程序中的漏洞。ZAP 提供了自动扫描仪以及一套工具,允许您手动查找安全漏洞。它充当一个网络代理, 108您可以将浏览器指向它,这样它就可以看到流向某个站点的流量,并允许您对应用程序进行爬虫、扫描、模糊和攻击,还有其他开源和商用扫描仪。

二、.NET ASPX框架

关于 ASPX.网页代码审计应该审计以确保 web 配置文件不会关闭页面验证。

< pages validateRequest="false" />

.Net framework 4.0 不允许关闭页面验证。因此,如果程序员想转向页面验证,开发人员需要回归到 2.0 验证模式。

< httpRuntime request validation-Mode = " 2.0 "/> 

代码审计者需要确保页面验证在任何地方都不会被关闭,并且如果它被关闭,就要理解为什么以及它给组织带来的风险。

< % @ Page Language = " c# " validation request = " false ">

三、.NET MVC框架

当 MVC 网络应用程序输入恶意的 XSS 代码时,它们会抛出如下错误:示例.NET XSS 框架错误:为避免此漏洞,请确保包含以下代码:

不幸的是,HtmlEncode 或验证功能不足以处理 XSS,尤其是在用户输入需要添加到JavaScript 代码、标签属性、XML 或 URL 中时。在这种情况下,一个好的选择是反 XSS库。

四、防御方法

1.使用 Microsft’s Anti-XSS 库

防止 XSS 的另一个帮助是使用反 XSS 库。

2.JavaScript 和 JavaScript 框架

如今,Javascript 和 Javascript 框架都广泛应用于 web 应用程序中。这阻碍了代码审计者了解哪些框架在防止 XSS 缺陷方面做得很好,哪些框架做得不好。代码审计人员应该审计一下,看看对于正在使用的框架是否存在任何 CVE,并审计 javascript 框架是否是最 新的稳定版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/838325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS元素的显示模式

1、现在我想做成小米左侧边栏这样的效果&#xff0c;该怎么做呢&#xff1f; 2、小米商城触碰之后会显示出新的商品案例 3、一碰到之后会出现这个列表 4、这里涉及到了元素显示模式&#xff1a; 5、用人进行划分可以分为男人和女人&#xff0c;根据男人和女人的特性进行相应的…

Leetcode-每日一题【剑指 Offer 17. 打印从1到最大的n位数】

题目 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1输出: [1,2,3,4,5,6,7,8,9] 说明&#xff1a; 用返回一个整数列表来代替打印 n 为正整数 解题思路 前置知识 M…

ChatGenTitle:使用百万arXiv论文信息在LLaMA模型上进行微调的论文题目生成模型

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

2024年中国计量大学MBA项目招生信息全面了解

2024年全国管理类硕士联考备考已经到了最火热的阶段&#xff0c;不少考生开始持续将注意力集中在备考的规划中&#xff01;杭州达立易考教育整合浙江省内的MBA项目信息&#xff0c;为大家详细梳理了相关报考参考内容&#xff0c;方便大家更好完成择校以及针对性的备考工作。本期…

Ubuntu 23.04 作为系统盘的体验和使用感受

1.为啥主系统装了Ubuntu 由于公司发电脑了&#xff0c;我自己也有一台台式电脑&#xff0c;然后也想去折腾一下Ubuntu&#xff0c;就把自己的笔记本装成Ubuntu系统了&#xff0c; 我使用的是23.04的桌面版&#xff0c;带图形化界面的。我准备换回Windows 11了&#xff08;因为…

C#利用自定义特性以及反射,来提大型项目的开发的效率

在大型项目的开发过程中&#xff0c;需要多人协同工作&#xff0c;来加速项目完成进度。 比如一个软件有100个form&#xff0c;分给100个人来写&#xff0c;每个人完成自己的Form.cs的编写之后&#xff0c;要在Mainform调用自己写的Form。 如果按照正常的Form form1 new For…

不需要考虑mid+1、mid-1的二分查找模板,希望大家都能学会

文章目录 一、模板示范二、模板三、细节说明为什么L的初始值为-1&#xff0c;R的初始值为N为什么循环结束的条件是while(L1!R)?不会陷入死循环 最后四、    例题one[数的范围](https://www.acwing.com/problem/content/791/)    例题two[数的三次方根](https://www.acwing…

骨传导耳机真不伤耳吗?骨传导耳机有什么好处?

骨传导耳机真不伤耳吗&#xff1f;骨传导耳机有什么好处&#xff1f; 我先来说说骨传导耳机的工作原理吧&#xff0c;骨传导是一种传声方式&#xff0c;声波通过颅骨、颌骨等头部骨头的振动&#xff0c;将声音传到内耳。其实骨传导的现象我们很常见&#xff0c;就像我们平时嗑瓜…

【总结】p49常见问题和快捷键汇总

p49常见问题和快捷键汇总 基础概念常用快捷键汇总编辑器快捷键&#xff08;不包括视口操作&#xff09;蓝图快捷键 中英文命名注意事项帧和秒的概念带星号的文件的意思编译的作用实例和原素材情景关联返回的快捷键 虚幻引擎闪退问题 基础概念 常用快捷键汇总 编辑器快捷键&am…

【图像去噪】基于原始对偶算法优化的TV-L1模型进行图像去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

ruoyi-cloud-notes02

1、Validated RequestBody 配合使用 Validated 和 RequestBody 都是 Spring Boot 中用于在请求中验证数据的注解。但是&#xff0c;它们的作用和使用方式略有不同。 Validated 用于在方法参数、URL、请求体、Map中的数据上进行验证&#xff0c;确保数据的有效性。它会在验证失…

SpringBoot核心内容梳理

1.SpringBoot是什么? Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它简化了Spring应用程序的创建和开发过程&#xff0c;使开发人员能够更快速地创建独立的、生产就绪的Spring应用程序。它采用了“约定优于配置”的原则&#xff0c;尽可能地减少开发人员需要进…

创建vue-cli(脚手架搭建)

目录 功能 需要的环境 使用HbuilderX快速搭建一个vue-cli项目 组件路由 element-ui vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义 好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个 骨…

2019年09月《全国青少年软件编程等级考试》Python一级真题解析

一、单选题 第1题 关于Python的编程环境,下列的哪个表述是正确的? A:Python的编程环境是图形化的; B:Python只有一种编程环境ipython; C:Python自带的编程环境是IDLE; D:用windows自带的文本编辑器也可以给Python编程?,并且也可以在该编辑器下运行; 正确答案…

数据集相关网站(Open datasets and sources)

数据集相关网站(Open datasets and sources&#xff09; 数据集网站 Open datasets and sources政府数据网站 Government Data:金融数据网站 Financial Data Sources:犯罪数据网站 Crime Data:健康数据网站 Health Data:学术和商业数据网站 Academic and Business Data:其他数据…

Linux下进程的特点与环境变量

目录 进程的特点 进程特点的介绍 进程时如何实现并发性的 进程间如何切换 概念铺设 PC指针 上下文 环境变量 PATH 修改PATH HOME SHELL env 命令行参数 什么是命令行参数&#xff1f; 打印命令行参数 通过函数获得环境变量 getenv 命令行参数 env 修改环境变…

Compose:从重组谈谈页面性能优化思路,狠狠优化一笔

作者&#xff1a;晴天小庭 前言&#xff1a; 随着越来越多的人使用Compose开发项目的组件或者页面&#xff0c;关于使用Compose构建的组件卡顿的反馈也愈发增多&#xff0c;特别是LazyColumn这些重组频率较高的组件&#xff0c;因此很多人质疑Compose的性能过差&#xff0c;这…

flask服务生成证书文件,采用https访问,开启用户密码验证

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 3072开启用户密码验证 auth.verify_password def verify_password(username, password):if username abcdefg and password 1234546:return usernameapp.route(/post_request, methods[POST…

HDFS中的Federation联邦机制

HDFS中的Federation联邦机制 当前HDFS体系架构--简介局限性 联邦Federation架构简介好处配置示例 当前HDFS体系架构–简介 当前的HDFS结构有两个主要的层&#xff1a; 命名空间&#xff08;namespace&#xff09; 由文件&#xff0c;块和目录组成的统一抽象的目录树结构。由n…

JavaScript |(五)DOM简介 | 尚硅谷JavaScript基础实战

学习来源&#xff1a;尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 &#x1f4da;DOM简介&#x1f4da;DOM查询&#x1f407;文档的加载&#x1f407;节点&#x1f407;节点的属性&#x1f407;元素节点的子节点&#x1f407;获取父节点和兄弟节点&#x1…