Web安全开发指南--文件系统
6.1、上传文件功能
|
简要描述 |
文件上传漏洞是由于文件上传功能实现代码没有对用户上传的文件进行正确处理,导致允许攻击者向服务某个目录上传文件。 |
|
|
解决方案 |
上传文件功能只对登录用户开放; 同时通过文件头和文件扩展名来判断文件类型; 判断文件类型时尽量使用黑名单的方式,可以使用较粗粒度方式,比如过滤”.php”字串(忽略大小写)来防止php文件的上传; 过滤上传路径或文件名中的NULL字符,防止NULL字符截断; 如果上传的文件为图片,可对图片进行压缩处理再存储; 不要将上传文件的绝对路径返回给客户端; 将上传的文件进行随机命名和重命名; 更新补丁,避免使用有文件解析漏洞的web服务器; 禁止PUT上传,禁用WebDAV; 安装杀毒软件对上传目录的文件进行实时监控。 |
|
|
备注 |
PHP版本<5.3.4 , 几乎所有的file函数都受NULL截断影响! |
|
6.2、路径遍历
|
简要描述 |
应用程序包含文件资源是非常常见的事情,但也因此很容易引入漏洞。 |
|
|
解决方案 |
当检测包含字符”/”或”\”字符时拒绝处理该请求。 尽可能不使用用户输入数据作为文件系统调用的入参; 使用索引而不是用户提供的文件名的方式来存取文件,比如用户提交5,代表foo这个文件,而不是让用户提交foo这个文件名(参考附录11.2.2); 保证用户的输入不能控制一个完整路径中的任何一部分。 |
|
|
备注 |
|
|
6.3、临时文件
|
简要描述 |
应用程序偶尔会产生临时文件到文件系统,如果这些文件暴露给未授权的用户,就有可能导致信息泄漏。 |
|
|
解决方案 |
保证临时文件不允许被未认证用户访问; 执行自动化脚本对临时文件进行定时清理; 如果可能,尽量将临时文件置放在web目录外,防止浏览器强制访问攻击; 对临时文件进行随机化命名,降低浏览器暴力遍历的攻击概率。 |
|
|
备注 |
|
|
6.4、旧的无效文件
|
简要描述 |
系统管理人员和开发人员使用编辑器或其它工具后可能会产生一些临时文件,如果这些文件的扩展名或者权限被改变了,就有可能被攻击者读取到其中的数据。 |
|
|
解决方案 |
在开发中防止应用程序保留文件的备份; 定期检查web目录下的所有文件是不是都是必须的; 保证应用程序产生的临时文件无法通过浏览器访问。 |
|
|
备注 |
|
|
如格式显示不正确,建议使用chrome浏览器
Web安全开发指南--文件系统的更多相关文章
- axis1,xfire,jUnit 测试案列+开Web Service开发指南+axis1.jar下载 代码
axis1,xfire,jUnit 测试案列+Web Service开发指南(中).pdf+axis1.jar下载 代码 项目和资源文档+jar 下载:http://download.csdn. ...
- 【web开发 | 移动APP开发】 Web 移动开发指南(2017.01.05更新)
版本记录 - 版本1.0 创建文章(2016.12.30) - 版本1.1 更正了hybird相关知识:增加了参考文章(2017.01.05): + Web APP更正为响应式移动站点与页面,简称响应 ...
- Web安全测试指南--文件系统
上传: 编号 Web_FileSys_01 用例名称 上传功能测试 用例描述 测试上传功能是否对上传的文件类型做限制. 严重级别 高 前置条件 1. 目标web应用可访问,业务正常运行. 2. 目 ...
- Web安全开发指南--会话管理
1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自 ...
- Web安全开发指南--异常错误处理与日志审计
1.异常错误处理与日志审计 5.1.日志审计系统安全规则 1 日志系统能够记录特定事件的执行结果(比如 成功或失败). 确保日志系统包含如下重要日志信息: 1. 日志发生的时间: 2. 事件的严重 ...
- Web安全开发指南--数据验证
1.数据验证 4.1.输入数据验证安全规则 1 数据验证必须放在服务器端进行. 2 至少对输入数据的数据类型.数据范围和数据长度进行验证. 3 所有来自不可信数据源(比如网络.用户命令.数据库和文件系 ...
- web安全开发指南--权限管理
2.1 访问控制安全规则 1 访问控制必须只能在服务器端执行. 2 只通过session来判定用户的真实身份,避免使用其它数据域的参数(比如来自cookie.hidden域 ...
- web安全开发指南--认证
1.认证 1.1. 认证和密码管理安全规则 1 认证控制必须只能在服务器端执行. 2 除了指定为公开的资源,对所有其它资源的访问都必须先经过认证. 3 为所有关键凭证实施防"暴力 ...
- Lightning Web Components 开发指南(二)
Lightning Web Components 是自定义元素使用html 以及现代javascript进行构建. Lightning Web Components UI 框架使用web compon ...
随机推荐
- 2017 ACM ICPC Asia Regional - Daejeon
2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...
- Metro应用Json数据处理
Windows Phone 8 或者 Windows 8 平台对JSON数据的处理方式基本是一致的,需要使用DataContractJsonSerializer类将对象的实例序列化为JSON字符串,并 ...
- “您查看的网页正在试图关闭窗口。是否关闭此窗口”的屏蔽方法(JavaScript)
原文:http://www.cnblogs.com/tigerhuolh/archive/2011/04/14/2015634.html 用JS代码关闭窗口时会提示“您查看的网页正在试图关闭窗口.是否 ...
- css绘制图标
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- Weblogic常用监控指标以及监控工具小结
https://blog.csdn.net/hualusiyu/article/details/39583549
- 【PAT】1004. 成绩排名 (20)
1004. 成绩排名 (20) 读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 ...
- python ConfigParser 配置读写
我们写程序的时候一般都会写程序包的时候,很少硬编码写在一起,这有个很好的配置文件包. 参考 ConfigParser 和 ConfigParser 的使用 一.ConfigParser 简介 C ...
- Java8所有的包介绍(由英文文档翻译而来)
转载: Java8所有的包介绍(由英文文档翻译而来)
- thinkphp5.0 配置
ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配置.公共配置.模块配置.场景配置和动态配置. 对于有些简单的应用,你无需配置任何配置文件,而对于复杂的要求,你 ...
- 《java虚拟机》----虚拟机字节码执行引擎
No1: 物理机的执行引擎是直接建立在处理器.硬件.指令集合操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格 ...