常见安全漏洞及修复方案
1.1 跨站脚本(XSS)漏洞
漏洞描述
跨站脚本攻击(Cross Site Scripting, XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。 恶意的攻击者将对客户端有危害的代码放到服务器上作为一个网页内容, 使得其他网站用户在观看此网页时,这些代码注入到了用户的浏览器中执行,使用户受到攻击。一般而言,利用跨站脚本攻击,攻击者可窃会话 Cookie 从而窃取网站用户的隐私。
漏洞危害
- 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼 JavaScript 以监控目标网站的表单输入。
- 网站挂马:跨站时利用 IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。
- 身份盗用:Cookie 是用户对于特定网站的身份验证标志,XSS 可以盗取到用户的 Cookie,从而利用该 Cookie 盗取用户对该网站的操作权限。如果一个网站管理员用户 Cookie 被窃取,将会对网站引发巨大的危害。
- 盗取网站用户信息:当能够窃取到用户 Cookie 从而获取到用户身份时,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。
- 垃圾信息发送:比如在 SNS 社区中,利用 XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
- 劫持用户 Web 行为:一些高级的 XSS 攻击甚至可以劫持用户的 Web 行为,监视用户的浏览历史,发送与接收的数据等等。
- XSS 蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施 DDoS 攻击等。
解决方案
- 对参数做 html 转义过滤,要过滤的字符包括:单引号、双引号、大于号、小于号,& 符号,防止脚本执行。
- 在变量输出时进行 HTML ENCODE 处理。
1.2 CSRF 漏洞
漏洞描述
跨站请求伪造(Cross-Site Request Forgery, CSRF),恶意网站通过脚本向当前用户浏览器打开的其它页面的 URL 发起恶意请求,由于同一浏览器进程下 Cookie 可见性,导致用户身份被盗用,完成恶意网站脚本中指定的操作。
漏洞危害
- 信息泄露:如登录ID,隐私信息等。
- 恶意操作:如加好友,加购物车,删除数据等。
解决方案
CSRF漏洞修复方案主要思路有两类:
- 验证请求是信任页面发起,这类修复方案有:
- 在表单中填充一次性随机的 csrf token 防止攻击者伪造 form 表单进行 CSRF。同时将此串 token 置入 session,在后端再进行一次一致性校验。
- referer 验证。
- 验证请求是合法用户发起,这类修复方案有:
- 验证码
- 密码验证
- OTP 验证
1.3 HTTP Header 注入漏洞
漏洞描述
Web 程序代码中把用户提交的参数未做过滤就直接输出到 HTTP 响应头中,导致攻击者可以利用该漏洞来注入到 HTTP 响应头中实现攻击。
解决方案
- 对参数做合法性校验以及长度限制,谨慎的根据用户所传入参数做 HTTP 响应的 Header 设置。
- 在设置 HTTP 响应头时,过滤回车换行
%0d%0a、%0D%0A
字符。
1.4 目录遍历漏洞
漏洞描述
目录遍历是由于 Web 服务器或 Web 应用程序对用户输入文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过 HTTP 请求和利用一些特殊字符就可以绕过服务器的安全限制,访问任意受限的文件(可以是 Web 根目录以外的文件),甚至执行系统命令。
解决方案
- 严格检查文件路径参数,限制在指定的范围。
- 严格限制文件路径参数,不允许用户控制文件路径相关的参数,限定文件路径范围。
1.5 SQL 注入漏洞
漏洞描述
SQL 注入攻击(SQL Injection),被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。 在设计不良的程序当中,忽略了对输入字符串中夹带的 SQL 指令的检查,那么这些夹带进去的指令就会被数据库误认为是正常的 SQL 指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
漏洞危害
- 机密数据被窃取
- 核心业务数据被篡改
- 网页被篡改
- 数据库所在服务器被攻击变为傀儡主机,甚至企业网被入侵
解决方案
- 所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中。
- 对进入数据库的特殊字符
'"\<>&*;
等进行转义处理,或编码转换。 - 确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为 int 型。
- 数据长度应该严格规定,能在一定程度上防止比较长的 SQL 注入语句无法正确执行。
- 网站每个数据层的编码统一,建议全部使用 UTF-8 编码,上下层编码不一致有可能导致一些过滤模型被绕过。
- 严格限制网站所用数据库账号的权限,给此用户仅提供能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
- 避免网站显示 SQL 错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
1.6 文件下载漏洞
漏洞描述
Web 应用程序在处理文件下载时,接受用户指定的路径和文件名进行下载,攻击者利用此漏洞来下载服务器的其它文件甚至任意文件(源代码、数据库甚至 passwd 等)。
解决方案
- 限制可下载文件所在的目录为预期范围。
- 通过指定文件编号的方式来定位待下载文件。
1.7 文件上传漏洞
漏洞描述
文件上传的 Web 程序未对文件类型和格式做合法性校验,导致攻击者可以上传 Webshell 或者非期望格式的文件。
解决方案
- 对上传文件的大小和类型进行校验,定义上传文件类型白名单。
- 保存上传文件的目录不提供直接访问。
常见安全漏洞及修复方案相关推荐
- 常见主机漏洞及修复方案
1.openssh累积型漏洞 高 cve-2017-10012 修复意见: 升级版本至>=openssh-5.3p1-122.el6 2.NTP累积型漏洞 高 修复意见: 稳定版请尽快安装 ...
- 绿盟漏扫系统漏洞及修复方案
绿盟漏扫系统漏洞及修复方案 漏洞1 详细描述: 1.X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部 ...
- 这些常见的漏洞和修复方法你知道吗?
1.SQL注入 描述:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了原有SQL语句逻辑,攻击者可以利用这个漏洞执行任意SQL语句. 修复方法: 代码层最佳 ...
- 检测到目标URL存在http host头攻击漏洞,修复方案:在Web服务器防止Host头攻击
一.前言 漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST"].但是这个header是不 ...
- Python中的10个常见安全漏洞及修复方法
Python中的10个常见安全漏洞及修复方法 写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在 ...
- python中常见的漏洞_注意!Python中的10个常见安全漏洞及修复方法
原标题:注意!Python中的10个常见安全漏洞及修复方法 源 /Python程序员 编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避 ...
- XSS漏洞及修复方案
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序.这些恶意网页程序通常是JavaScript,但实际上也可以包括Java ...
- php imagemagick 漏洞,ImageMagick漏洞(CVE-2016-3714)修复方案
关于这个漏洞影响ImageMagick 6.9.3-9以前是所有版本,包括ubuntu源中安装的ImageMagick.而官方在6.9.3-9版本中对漏洞进行了不完全的修复.所以,我们不能仅通过更新I ...
- python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法
编写安全的代码很困难,当你学习一门编程语言.一个模块或框架时,你会学习其使用方法.在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例.然而,许多 ...
最新文章
- 对于5G通信 我们可能都有一点误解
- idea bookmark 怎么用
- mxnet迁移学习 注释版
- manila 文件共享存储服务
- Unity--------------------万向锁的概念
- 无线呼叫服务器对码设置,楼层呼叫器对码方式种类
- 【转】logback 常用配置详解(序)logback 简介
- docker 搭建mysql 连接不上_docker搭建MySQL主从集群
- 注释不能自动设置时间_微波炉维修|微波炉能加热食品,但是到了设定时间,不能自动断电。...
- 中年人需要写个遗嘱吗?
- STM32F4 DMA2D_R2M
- Telegram支持删除双方设备中的聊天记录
- 【专栏必读】软件工程导论第六版(张海藩)专栏学习笔记目录导航
- Vibe算法原理与实践(C++)
- excalidraw 使用中文手写体
- P800 GPS 地图安装教程
- java解析json天气api,免费天气API,全国天气 JSON API接口,可以获取五天的天气预报...
- 使用计算机提高办公效率,掌握这四个电脑办公小技巧,你的工作效率至少提升3倍!要高调使用...
- bitmap亮度的互转,RBG获取等
- datastage连接mysql库_DataStage8.7连接远程Oracle数据库
热门文章
- 【计算机毕业设计】001基于SpringBoot的在线拍卖系统
- python requests cookie的获取和使用
- 深圳梅林中学2021年高考成绩查询,加油,少年的你!直击福田区2021高考首日
- 蓝桥杯 Python 算法训练 逗志芃的暴走
- 2020.8.26丨全长转录组测序产品概述
- 直流电机反接制动调速 基于双向PWM变换器的直流电机反接制动调速 直流电机双闭环调速
- 【墨天轮专访第二期】巨杉数据库萧少聪:重视企业长期需求,打造中国的世界级产品
- 申宝正规股票下周市场将迎来抛压
- vue.js之非关系组件通信(八竿子打不着的关系组件通信)
- CSS3:2D转换(基础)