ASP.NET虚拟主机在删除文件目录时的隐患浅析

开发 后端
ASP.NET虚拟主机在删除文件目录时有什么隐患呢?具体是怎么体现的呢?本文就向你介绍这方面的情况。

ASP.NET虚拟主机在删除文件目录时删除子目录和文件的主要方法和代码:

在删除子目录时,我们需要用到Directory.Delete (string,bool)方法,此方法有两种:

1.public static void Delete(string);

从指定路径删除空目录。

2.public static void Delete(string, boolean);

ASP.NET虚拟主机在删除文件目录时删除指定的目录并(如果指示)删除该目录中的任何子目录,将boolean设置为true的话,则删除此目录下的所有子目录和文件,否则将boolean设置为false。

在这里我们使用了第二种方法,如果选择删除的话,将删除此目录下的所有子目录和文件。

注意:Directory 类的所有方法都是静态的,因而无需具有目录Directory的实例就可被调用。

  1. /*实现删除子目录的方法,此方法为VS.NET自动添加,
  2. 注意DataGridCommandEventArgs e为DirGrid中 CommandName="Delete" 的ButtonColumn的事件,
  3. 通过此事件,我们可以得到是那一行的ButtonColumn按钮列被点击,进而确定我们需要删除的子目录的名称*/ 
  4. private void DirGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){  
  5. /*定义一个单元格,e.Item为此事件所发生行的所有项目,
  6. e.Item.Cells[1]为整个行的第二个单元格的内容,在此DataGrid中为子目录的名称  
  7. */ 
  8. TableCell ItemCell = e.Item.Cells[1];  
  9. //得到此子目录的名称的字符串  
  10. string item = ItemCell.Text;  
  11. //删除此子目录  
  12. Directory.Delete(item,true);  
  13. //删除后进行数据绑定以更新数据列表  
  14. DirGrid.DataBind();  
  15. }  

ASP.NET虚拟主机在删除文件目录时,我们需要用到File.Delete(string path);

注意:File 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。

  1. private void FileGrid_DeleteCommand(object source,  
  2. System.Web.UI.WebControls.DataGridCommandEventArgs e) {  
  3. TableCell ItemCell = e.Item.Cells[1];  
  4. //得到此文件名称的字符串  
  5. string item = ItemCell.Text;  
  6. //删除此文件  
  7. File.Delete(item);  
  8. //删除后进行数据绑定以更新数据列表  
  9. DirGrid.DataBind();  
  10. }  

通过上边的主要方法我们在页面上实现了一个删除某一个子目录或者文件的功能,此功能在测试时需要慎重使用,一旦删除无法通过常规方法恢复。其他如目录或文件改名、修改内容等方法都可以在此程序基础上添加相应的功能,实现方法也很简单。各位爱好者可以通过添加相应功能,使之扩充为一个基于Web的服务器文件管理系统。我们也可以由此看到这个程序的危害性,一个没有对此安全隐患采取防范措施的服务器的文件系统就都暴露在了使用此程序的用户面前。

ASP.NET虚拟主机在删除文件目录时可能出现的问题的介绍就到这里,希望通过实例对你了解这方面有所帮助。

【编辑推荐】

  1. ASP.NET应用程序资源访问安全模型浅析
  2. ASP.NET虚拟主机的重大安全隐患
  3. ASP.NET虚拟主机之文件系统操作隐患浅析
  4. ASP.NET虚拟主机在创建数据源时的隐患浅析
  5. ASP.NET虚拟主机在文件目录管理时的隐患浅析
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-07-27 16:14:29

ASP.NET虚拟主机

2009-07-27 16:30:11

ASP.NET虚拟主机

2009-07-27 15:59:34

ASP.NET虚拟主机

2009-07-27 15:51:49

ASP.NET虚拟主机

2009-07-27 15:44:32

ASP.NET虚拟主机

2009-07-21 15:34:32

ASP.NET 2.0

2009-07-27 10:22:16

ASP.NET中Coo

2010-08-06 08:50:21

ASP.NET

2009-07-27 15:34:11

MembershipASP.NET

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 18:36:12

ASP.NET Che

2009-07-27 17:00:29

ASP.NET主机

2009-07-27 10:18:12

TypeResolveASP.NET

2009-07-22 18:03:00

ASP.NET ASP

2009-07-31 12:43:59

ASP.NET MVC

2009-08-05 15:50:13

ASP.NET优点

2009-07-31 11:45:42

ASP.NET文件下载

2009-07-21 10:05:10

ASP.NET配置文件

2009-07-20 16:09:39

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计
点赞
收藏

51CTO技术栈公众号