22.4、Web应用漏洞分析与防护

目录

    • Web应用安全概述
    • DWASP Top 10
    • Web应用漏洞防护 - 跨站脚本攻击XSS
    • Web应用漏洞防护 - SQL注入
    • Web应用漏洞防护 - 文件上传漏洞
    • Web应用漏洞防护 - 跨站脚本攻击XSS

Web应用安全概述

技术安全漏洞,主要是因为技术处理不当而产生的安全隐患,比如SQL注入漏洞,跨站脚本(XSS)、恶意文件执行等

第二个是业务逻辑安全漏洞,主要是由于业务流程考虑不周到,或者是处理不当造成的安全隐患。比如用户找回密码缺陷,一般我们找回密码的时候是需要输入你的手机验证码,而且你的手机号是你当初注册时使用的那个手机号,如果他让你重新输入一个新的手机号,那么就绕过了以前的手机号,所有人输入一个新手机号,那都可以找回密码了,所以这肯定不安全

短信炸弹漏洞,一般我们输验证码都要隔一分钟输一次,而且验证码获取的次数都有限制,如果你不做限制,他一分钟可能让你后台服务器发十万条验证码,这会耗尽短信资源,短信都是要钱的,所以这些就是业务逻辑的安全漏洞,我们在做网站规划设计的时候,是需要注意的

DWASP Top 10

第一个是注入漏洞,它主要是攻击者构造恶意的数据输入,诱使解析器在没有适当授权的情况下执行非预期的命令或者访问我们的数据,最典型的就是SQL注入,攻击者通过在网页里面输入一些非法的SQL命令,往我们后台的数据库里面插入黑客想要插入的一些字段,比如说你插入一个新的用户名和密码,比如说要访问超级管理员的用户名、密码,造成的效果就是执行非预期的命令或者非法访问我们后台的数据。

第二个遭受破坏的认证,web应用程序当中,可能存在不限制身份认证的尝试,比如说你可以一分钟去尝试认证一万次,而后台没有限制。这样可以比较方便的猜他的密码,所以其实我们在做web安全设定的时候,经常要限制认证的次数

第二个是web会话令牌的泄露,认证之后,它会给一个会话令牌,这个令牌被泄露之后,可能造成一些非法访问

应用会话超时设置不正确,比如说登录网银,你五分钟,没有任何操作,就被自动的踢出来了,如果不做设置或者设置成24小时都不被踢,那么你这个人走了之后,你的这个网银可能被他人操作,这样就不安全了

web应用口令复杂度不高,或者允许使用历史口令等问题,这些就是口令策略,这些策略这些问题都可能给我们的web认证机制带来影响

第三个敏感数据暴露漏洞,就是我们后台存储的数据,如果是明文,可能被黑客窃取,甚至可能被内鬼窃取,所以关键的数据我们要加密,对我们的用户名密码这一类的敏感数据,我们要通过哈希这种形式来存储

第四个XML外部实体引用漏洞,针对这一类漏洞,攻击者可以利用外部实体窃取uri文件处理器的内部文件和共享文件、监听内部扫描端口,执行远程代码和实施拒绝服务攻击

本来我是要访问etc/passwd文件的,但是我把后面的访问目录,改成访问某个IP地址下面的某一个文件,通过这种方式就可以探测我们服务器相关的一些IP地址,还有他的一些文件目录,这就是XML外部实体引用漏洞

第五个受损害的访问控制漏洞,主要是未对通过身份验证的用户进行适当的访问控制。因为不同的身份,它是有不同的权限,如果你没有设置相应的访问权限,比如说所有用户都可以访问管理员才能查看的敏感文件,这就造成了访问控制问题

第六个安全配置错误,包括不安全的默认配置,不完整的临时配置,开源云存储,错误的http标头配置以及包含敏感信息的详细错误信息。如果用户登录有错误,你给他返回四零四这一类的信息就行了,更完整的一些详细信息可能涉及到后台服务器版本,包括产生错误的一系列原因,这些是不用给外部用户看的,给内部管理员看就行了

比如说目录列表在服务器未被禁用,就是我们的用户登录,他可以看到我们WEB服务器的所有目录,这是很不安全的,导致攻击者可以列出所有目录,这个是需要去隐藏目录,隐藏后台服务器的版本号,包括隐藏一些关键配置

第七个跨站脚本漏洞,就是当应用程序中的新网页当中包含不受信任的,未经恰当验证或者转义的数据时,或者使用可以创建的HTML或JavaScript,浏览器API更新现有的网页时就会出现跨站脚本的缺陷,跨站脚本能够让攻击者在受害者的浏览器当中执行脚本,劫持用户的会话破坏网站或者将用户重定向到恶意站点,它能够在受害者的浏览器上去执行相应的脚本,这些脚本是攻击者让你执行的,劫持用户的会话,破坏我们的网站,在网站中插入一些新的内容,这新插入的新内容就是我们攻击者窃取用户信息的一种方式,或者直接将你定向到其他恶意的网站里面去。

Web应用漏洞防护 - 跨站脚本攻击XSS

这是钓鱼网站使用跨站脚本攻击,控制服务终端的浏览器的显示来达到攻击目的
在这里插入图片描述
这是用户真实的银行网站,这是攻击者的网站。它在用户的浏览器上显示了两部分的内容,第一部分是我们正常的网站,然后在这个空的位置上显示了我们攻击者的内容相当于我们这个用户去访问真实的网站,其实在最后得到的内容是一部分是真实的,一部分是黑客嵌入的内容,相当于就是破坏了我们网站的完整性。给你插入了一部分内容,这一部分内容是有危害的,这部分内容可能是窃取你的信息,也可能是直接给你挂一个网页木马,让你中木马

第八个叫非安全反序列化漏洞。序列化简单理解,就是把内存里边状态化的信息读成一个文件,把它写到一个文件里面,这叫序列化。然后反序列化,就是把这个文件,再给你搞到内存里面,形成一个状态化的信息,把它读到内存里面去执行,这叫反序列化。

非安全的反序列化,就是相当于把文件读到内存里面去执行。这个读的文件有可能是我们黑客构造的一个恶意代码,通过这种方式就可以利用它来执行攻击,包括重播攻击,注入等等,这些攻击都可以执行,这叫非安全的反序列化漏洞

第九个是使用含有已知漏洞的组件,比如说库、框架,还有其他的模块,典型的像我们的SSL它是一个加密的模块。SSL模块以前报了一个漏洞,这种漏洞是可能出现的,还有像pgp也是一个安全组件,它里面包含数字签名,身份认证等等一系列的功能,这个组件也有可能有漏洞,这是有漏洞的组件

第十个非充分的日志记录和监控,我们要求对网站进行日志记录和监控,如果你记录不充分,后期出了问题,那么你可能找不到什么原因

Web应用漏洞防护 - SQL注入

第一个对应用程序输入,进行安全过滤,本来我的网页是让你输入用户名密码的,但是你给我输入针对数据库的增删改查,从而去修改我后台的数据库,或者查询我数据库的内容,这是不允许的,所以我们对用户的输入进行过滤,你就老老实实的输用户名密码,不要给输drop、delete这种敏感的针对数据库的操作

第二个是设置应用程序的最小化权限。sql注入攻击是利用网页应用程序的权限,对数据库进行操作。如果最小化设置数据库和网页应用程序的执行权限,可以阻止我们非法SQL的执行,可以减少攻击带来的一个破坏影响。比如说你直接输入,你就有这个管理员的权限,那肯定对后台造成的影响是比较大的,我们可以建立独立的账号,使用最小权限来操作数据库,以免给攻击者可乘之机

第三个部署数据库防火墙或者数据库审计系统,通过部署这些系统能实现过滤用户输入的效果,一些敏感的输入你输不进去,包括对数据库敏感操作,你也操作不了,直接给你过滤掉

第四个屏蔽应用程序错误提示信息,有些时候输入错误之后,用户的浏览器上会显示出错误信息,有些时候会包含比较敏感的像ODBC的类型,数据库引擎,数据库的名称、表的名称等等,这些名称在给到用户的时候,要把它给过滤掉,防止攻击者通过我们返回的一些错误信息来了解我们数据库的内部情况。

第五个对开源的网页应用程序做适当的改造,你要对它进行相应的安全增强,防止黑客利用我们已知的表结构,比较轻易的对我们的数据库进行注入攻击

我们解决的时候,其实第一个最重要的就是检查输入,第二个部署相应的安全设备。

Web应用漏洞防护 - 文件上传漏洞

黑客可以向网站后台上传一些文件,并且这个文件可以自动执行,比如常见的就上传木马,网页木马,第一个将上传目录设置为不可执行,你能上传,但是你上传上去执行不了,你的木马执行不了,那就没用,可以通过这种方式避免上传文件远程触发执行或者自动执行

第二个检查上传文件的安全性。如果发现上传的文件有木马,有病毒或者其他的恶意代码,能够自动阻断你的上传,这是针对上传漏洞的解决方案。

Web应用漏洞防护 - 跨站脚本攻击XSS

主要是利用网站中的漏洞,向URL当中注入一些恶意脚本,欺骗我们的用户,比如说把你的网站内容做一个替换,比如说在你的网站中嵌入脚本,新增一部分内容,或者是强制让你去加载其他的外部脚本,让你强制的去浏览第三方的网页,这是跨站脚本攻击的几种方式

相当于就是在正常的网页里当中嵌入一部分内容,这是黑客想让你看到的有攻击性的内容。比如一个正常的官网,给你嵌入一部分反动言论

解决跨战脚本攻击,第一个检查用户的输入,跟SQL注入有点类似,SQL注入最后攻击的是后台的数据库,是注入的数据库,而跨站脚本,它攻击的实际上是网页是web,但是都是通过不合法的输入来做的攻击,检查用户的输入

第二个针对网页的攻击都可以用waf,web应用防火墙

第三个对你的数据做相应的备份和恢复,即使被攻击了,可以有效的快速的做恢复,第三个相当于偏向于管理

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue3 入门到实战】15. 组件间通信

目录 1. Props 2. 自定义事件 3. mitt 4. v-model 4.1 v-model用在html标签上 4.2 v-model用在组件标签上 4.3 v-model 命名 4.4 总结 5. $attrs 6. $refs 和 $parent 7. provide 和 inject 8. pinia 9. slot 插槽 10. 总结 组件通信是指在不同组件之间传递数据…

云原生AI Agent应用安全防护方案最佳实践(上)

当下,AI Agent代理是一种全新的构建动态和复杂业务场景工作流的方式,利用大语言模型(LLM)作为推理引擎。这些Agent代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤,并结合迭代反馈循环和自省机制&#xff0…

本地部署DeepSeek摆脱服务器繁忙

由于图片和格式解析问题,可前往 阅读原文 最近DeepSeek简直太火了,频频霸榜热搜打破春节的平静,大模型直接开源让全球科技圈都为之震撼!再次证明了中国AI的换道超车与崛起 DeepSeek已经成了全民ai,使用量也迅速上去了…

【EXCEL】【VBA】处理GI Log获得Surf格式的CONTOUR DATA

【EXCEL】【VBA】处理GI Log获得Surf格式的CONTOUR DATA data source1: BH coordination tabledata source2:BH layer tableprocess 1:Collect BH List To Layer Tableprocess 2:match Reduced Level from "Layer"+"BH"data source1: BH coordination…

Postman如何流畅使用DeepSeek

上次写了一篇文章是用chatBox调用api的方式使用DeepSeek,但是实际只能请求少数几次就不再能给回响应。这回我干脆用最原生的方法Postman调用接口请求好了。 1. 通过下载安装Postman软件 postman下载(https://pan.quark.cn/s/c8d1c7d526f3),包含7.0和10…

部署 DeepSeek R1各个版本所需硬件配置清单

DeepSeek-R1 通过其卓越的推理性能和灵活的训练机制,在 2025 年的春节期间受到了广泛关注。 DeepSeek-R1 是一款高性能的 AI 推理模型,主要通过强化学习技术来增强模型在复杂任务场景下的推理能力。 在本地部署 DeepSeek-R1 时,尤其是完整的…

[免费]Springboot+Vue医疗(医院)挂号管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringbootVue医疗(医院)挂号管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue医疗(医院)挂号管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 在如今社会上,关于信息上…

Linux初始化 配置yum源

问题出现:(报错) 1 切换路径 2 备份需要操作的文件夹 3 更改 CentOS 的 YUM 仓库配置文件,以便使用阿里云的镜像源。 4 清除旧的yum缓存 5 关闭防火墙 6 生成新的yum缓存 7 更新系统软件包 8 安装软件包 补充:使用Pow…

ds-download-link 插件:以独特图标选择,打造文章下载链接

源码介绍 “ds-download-link”插件为 WordPress 网站提供了在文章编辑器中添加下载链接的功能,每个下载链接都支持图标选择,并能将这些链接以美观的样式展示在文章前端页面。以下是该插件的主要特性和功能: 后台功能 在文章编辑器下方添加…

好好说话:深度学习扫盲

大创项目是和目标检测算法YOLO相关的,浅浅了解了一些有关深度学习的知识。在这里根据本人的理解做一些梳理。 深度学习是什么? 之前经常听到AI,机器学习,深度学习这三个概念,但是对于三者的区别一直很模糊。 AI&…

node.js+兰空图床实现随机图

之前博客一直用的公共的随机图API,虽然图片的质量都挺不错的,但是稳定性都比较一般,遂打算使用之前部署的兰空图床,自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作,有兴趣的话可…

【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二: ValueError: Target…

灵活运用yaml格式配置你的python项目

Python开发时常用的配置文件后缀是.ini、.conf、.py、.json,今天风云要介绍的 .yaml 是当下最推荐的配置文件格式。容易阅读和修改,支持注释,且支持丰富的数据类型。 YAML(YAML Aint Markup Language)是一种人类可读的…

DeepSeek 指导手册(入门到精通)

第⼀章:准备篇(三分钟上手)1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章:基础对话篇(像交朋友⼀样学交流)2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章:效率飞跃篇&…

Tcp_socket

Tcp不保证报文完整性(面向字节流) 所以我们需要在应用层指定协议,确保报文完整性 // {json} -> len\r\n{json}\r\n bool Encode(std::string &message) {if(message.size() 0) return false;std::string package std::to_string(m…

激光工控机在精密制造中的应用与优势

在精密制造中,激光工控机可以用于许多场景例如 激光切割与雕刻:用于金属、塑料、陶瓷等材料的精密切割和雕刻,适用于汽车、航空航天、电子等行业;可实现复杂图案和高精度加工,满足微米级精度要求。 激光焊接&#xf…

基于微型5G网关的石化厂区巡检机器人应用

石化工业属于高风险产业,由于涉及易燃易爆、有毒有害工业原料,为了保障企业的安全生产与持续运营,因此相比其它行业需要进行更高频次、更全面细致的安全巡检和监测。由于传统的人工巡检监测存在诸多不便,例如工作强度大、现场环境…

WebP2P+自研回音消除:视频通话SDK嵌入式EasyRTC构建高交互性音视频应用

随着移动互联网时代的到来,手机端的扬声器大多采用外置设计,且音量较大。在这种情况下,扬声器播放的声音更容易被麦克风捕捉,从而导致回声问题显著加剧。这种设计虽然方便用户在免提模式下使用,但也带来了更复杂的音频…

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

飞书专栏-TEE文档

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573