代码安全【待续】
来源:互联网 发布:大数据的就业前景 编辑:程序博客网 时间:2024/04/27 08:40
1.Path Manipulation
例 2: 下面的代码使用来自于配置文件的输入来决定打开哪个文件,并返回给用户。 如果运行程序必须具有一定的特权,并且恶意用户能够篡改配置文件,那么他们就可以使用程序来读取系统中以 ".txt" 扩展名结尾的任何文件。
通过用户输入控制 file system 操作所用的路径,借此攻击者可以访问或修改其他受保护的系统资源。
解决方案: 【应该屏蔽动态路径中的/,\,../,..\,避免操做同目录其他文件和父目录的文件】
当满足以下两个条件时,就会产生 path manipulation 错误:
1. 攻击者能够指定某一 file system 操作中所使用的路径。
2. 攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情况下是不可能获得的。
例如,在某一程序中,攻击者可以获得特定的权限,以重写指定的文件或是在其控制的配置环境下运行程序。
例 1: 下面的代码使用来自于 HTTP 请求的输入来创建一个文件名。 程序员没有考虑到攻击者可能提供像 "..\\..\\Windows\\System32\\krnl386.exe
" 这样的文件名,这会导致应用程序删除一个重要的 Windows 系统文件。
String rName = Request.Item("reportName");...File.delete("C:\\users\\reports\\" + rName);
例 2: 下面的代码使用来自于配置文件的输入来决定打开哪个文件,并返回给用户。 如果运行程序必须具有一定的特权,并且恶意用户能够篡改配置文件,那么他们就可以使用程序来读取系统中以 ".txt" 扩展名结尾的任何文件。
sr = new StreamReader(resmngr.GetString("sub")+".txt");while ((line = sr.ReadLine()) != null) {Console.WriteLine(line);}
- 代码安全【待续】
- 个人计算机安全防护第一步(待续)
- 安全测试(二)未完待续
- CentOS 7服务器安全配置(未完待续)
- 精巧的代码(待续)
- 规范自己的代码...待续
- 代码安全
- 代码安全
- 待续
- 待续
- 待续
- 待续
- 待续
- 待续。。。
- (待续......)
- 待续。。。。。
- 待续
- Android的代码片段(待续)
- VC环境中调用TeeChart控件实现数据曲线分析(转载)
- Oracle内存全面分析
- php学习过程中一些记录
- ArcGIS Engine代码共享-符号(Symbol)对象操作
- [推荐] (SqlServer)分离所有用户数据库
- 代码安全【待续】
- 修改Firefox的User-Agent,伪装修改秘籍
- Install SVN WebDAV + SSL on Ubuntu (Apache)
- ArcGIS Engine代码共享-工作空间(workspace)对象操作
- .NET Framework Cleanup
- asio异步通信
- 从铁路订票系统看高并发网站技术解决之道
- 为什么我恢复的文件打不开/打开全是乱码
- 安装qemu-kvm-0.14.0