这些常见的漏洞和修复方法你知道吗?
1、SQL注入
描述:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了原有SQL语句逻辑,攻击者可以利用这个漏洞执行任意SQL语句。
修复方法:
代码层最佳防御方案:使用预编译sql语句查询和绑定变量。
- 使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
- 对进入数据库的特殊字符进行转义处理或编码转换。
- 确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
- 数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
- 网站每个数据层的编码同意,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
- 严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
- 避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
- 过滤危险字符。
2、XSS
描述:web程序代码中对用户提交的参数未做过滤或过滤不严,导致参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录,然后获取其登录凭证等。
XSS攻击对web服务器本身虽无直接危害,但是它借助网站进行传播,对网站用户进行攻击,窃取网站用户账号身份信息等,从而也会对网站产生较严重的威胁。XSS攻击可以导致这些危害:钓鱼欺骗、网站挂马、身份盗用、盗取网站用户信息、垃圾信息发送、劫持用户web行为、XSS蠕虫等。
修复建议:
XSS漏洞本质上是一种HTML注入,也就是将HTML代码注入到网页中,那么其防御的根本就是在将用户提交的代码显示到页面上时做好一系列的过滤与转义。
- 过滤输入的数据,这里的输入不仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
- 不仅验证数据的类型,还要验证其格式、长度、范围和内容。
- 不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
- 对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点也要进行检查。
3、CSRF
描述:CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作。通常由于服务端没有请求做严格过滤引起的。CSRF会造成密码重置,用户伪造等问题,可能引发严重后果。绝大多数网站是通过cookie等方式辨识用户身份,再予授权的。所以要伪造用户的正常操作,最好的方法是通过XSS或链接欺骗等途径,让用户在本机发起用户所不知道的请求。CSRF攻击会令用户在不知情的情况下攻击自己已经登录的系统。
修复建议:
- 验证请求的Referer是否来自本网站,但可被绕过。
- 在请求中加入不可伪造的token,并在服务端验证token是否一致或正确,不正确则丢弃拒绝服务。
4、SSRF
漏洞描述:通俗来说就是我们可以伪造服务器端发起的请求,从而获取客户端所不能得到的数据。SRRF漏洞形成的原因主要是服务器所提供的接口中包含了所要请求的内容的URL参数,并且对客户端所传输过来的URL参数进行过滤。
修复建议:
- 禁用不需要的协议,只允许HTTP和HTTPS请求
- 白名单的方式限制访问的目标地址,禁止对内网发起请求
- 过滤或屏蔽请求返回的详细信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一类型的文件,那么把返回结果展示给用户之前先验证返回的信息是否符合标准
- 验证请求的文件格式
- 禁止跳转
- 限制请求的端口为http常用的端口,比如80、443、8080、8000等
- 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
5、任意命令/代码执行
描述:命令或代码执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令和代码,通过漏洞执行恶意构造的语句,执行任意命令或代码。攻击者可在服务器上执行任意命令,读写文件操作等,危害巨大。
修复建议
- 严格过滤用户输入的数据,禁止执行非语气系统命令
- 减少或不使用代码或命令执行函数
- 客户端提交的变量在放入函数钱进行检测
- 减少或不适用危险函数
6、任意文件上传
描述:文件上传漏洞通常由于代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而造成的,如果文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等,攻击者可通过文件上传点上传任意文件,包括网站后门文件控制整个网站。
修复建议:
- 对上传文件类型进行验证,除在前端验证外在后端也进行验证。后端可以进行扩展名检测、重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。
- 严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录执行权限,防止木马执行。
- 对上传文件格式进行严格校验,防止上传恶意脚本文件
- 严格限制上传的文件路径
- 文件扩展名服务端白名单校验
- 文件内容服务端校验
- 上传文件重命名
- 隐藏上传文件路径
7、文件包含
漏洞描述:指程序在处理包含文件的时候没有严格控制。攻击者可以利用这个漏洞先把上传的文件、网站日志文件等作为代码执行或直接显示,或者包含远程服务器上的恶意文件,进而获得服务器权限
修复建议:
- 严格检查变量是否已经初始化
- 对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格检查。
- 严格检查问价包含函数中的参数是否外界可控。
8、弱口令
漏洞描述:网站的用户账号有弱口令,攻击者可以通过弱口令直接进入网站,然后进行下一步攻击。用弱口令登录网站管理后台,则可以执行任意管理员的操作。
修复建议:
- 强制用户修改默认口令,或者使用用户自定义初始密码策略
- 完善密码策略
- 增加人机验证机制,限制IP访问次数
9、暴力破解
漏洞描述:因为登录页面没有人机验证机制,没有验证码、有验证码但可以重复利用以及无登录错误次数限制,导致攻击者可通过暴力破解获取用户登录账号和密码。
- 如果用户登录次数超过设置的阈值,则锁定账号
- 如果IP登录次数超过设置的阈值,则锁定IP
- 增加人机验证机制
- 验证码必须在服务器端进行校验,客户端的校验都是不安全的
10、越权访问
漏洞描述:由于没有对用户访问角色的权限进行严格检查和限制,导致当前账号可以对其他账号进行相关操作。
修复建议:
- 对用户访问角色的权限进行严格的检查及限制
- 在一些操作时可以使用session对用户的身份进行判断和控制
11、网页木马
漏洞描述:经渗透测试发现目标站点存在webshell,攻击者可直接爆破口令使用木马,非常低成本的进行恶意操作。
- 确认并删除木马文件,并进行本地文件漏洞扫描排查是否还存在其他木马
- 发现并及时修复已存在的漏洞
- 通过查看日志、服务器杀毒等安全排查,确保服务器未被留下后门
以上就是常见的漏洞和修复方法,你还知道那些常见漏洞?
这些常见的漏洞和修复方法你知道吗?相关推荐
- Python中的10个常见安全漏洞及修复方法
Python中的10个常见安全漏洞及修复方法 写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在 ...
- python中常见的漏洞_注意!Python中的10个常见安全漏洞及修复方法
原标题:注意!Python中的10个常见安全漏洞及修复方法 源 /Python程序员 编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避 ...
- python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法
编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...
- python 不安全的包或方法_Python中的10个常见安全漏洞及修复方法
写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...
- python中常见的漏洞_Python常见安全漏洞及修复方法集合!你所不会的这里都有!...
[51CTO技术沙龙]10月27日,让我们共同探索AI场景化应用实现之道 --> 概述 编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考 ...
- 常见Web漏洞的修复方法
SQL注入 1.使用转义函数对xxx参数进行转义 2.检查数据类型,使用函数对数据类型进行强制转换 3.使用预编译语句 XSS 1.使用转义函数转义xxx参数 2.重要cookie使用HttpOnly ...
- 这些常见的安全漏洞和修复方法你知道吗?
1.SQL注入 描述:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了原有SQL语句逻辑,攻击者可以利用这个漏洞执行任意SQL语句. 修复方法: 代码层最佳 ...
- 打印机修复工具_打印机常见故障排除及修复方法
本文首发于微信公众号"电脑网络一点通"(dnwlydt) 喜欢我就请多多关注 后台经常有人问打印机打印不了来了,打印机没反应,打印错误,今天给大家分享下最常见的打印机故障修复方法吧 ...
- MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法
MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法 前言 0x01 准备工作 0x02 漏洞利用 0x03 修复方案 总结 前言 提到操作系统漏洞,大家肯定听说过耳熟能详的永恒之蓝 ...
最新文章
- (转)C语言位运算详解
- linux升级内核后反复重启,Ubuntu 14.04 升级内核后重启开机黑屏解决
- Python3 turtle教程
- 爱立信与Ooredoo签署5G新框架协议
- 【数据结构与算法】二叉树遍历
- linux系统——fread()与read()函数族区别
- IDE 插件新版本发布,开发效率 “biu” 起来了
- 不到 100 行 Python 代码徐峥变葛优
- 自制计算机语言,3个步骤实现简单语言解释器(自制简易编程语言)
- 程序员面试金典——9.5字符串排列
- 如何扩展/删除swap分区
- 基于51单片机的音乐盒彩灯频谱喷泉原理图方案设计
- android常用颜色
- 重邮计算机学院艺术团,毕业季 | 重庆邮电大学2019届 “邮梦青春,毕业季”文艺晚会...
- 从代数结构上理解数集的分类
- 澳洲电源和电池充电器对应标准的公告将强制执行2022年6月15日起
- ESP8266-Arduino编程实例-BMM150数字地磁传感器驱动
- 《K3 WISE常用数据表整理》
- [洛谷] P2357 守墓人
- Java的基础知识一
热门文章
- Matlab:License checkout failed. License Manager Error-95解决办法与Matlab加速启动
- 如何对CAD绘图区域进行设置?
- 微信小程序记录用户行为浏览记录和停留时间以及小程序全局分享
- 使用tensorflow:LSTM神经网络预测股票(三)
- Megahit, metaSPAdes, metabat2, GTDB-tk, checkM
- Android开发,实现摇一摇功能
- ITK入门教程(11)点集之创建一个点集
- 基于51单片机的智能汽车雨刷控制系统方案原理图程序设计
- 网络安全学习第6篇 - 爆破及PE文件解释
- 老菜鸟趣谈:对编程初学者的一些建议