从上传的文件夹和文件中删除执行权限

时间:2019-03-24 10:17:47

标签: c# .net system.io.file

我正在研究文件和文件夹上载系统,我想为其增加一些安全性。

我遵循了这个Article,其安全点编号6表示:

  

6。严格控制权限

     

任何上传的文件将归网络服务器所有。但这只需要   读/写权限,而不是执行权限。文件是   下载后,如果是   适当。有时删除执行会有所帮助   目录权限以防止服务器枚举   文件。

如何使用C#进行应用

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则希望将文件上传到远程服务器,然后将该文件更改为只读。这是一个选择。首先获取文件对象。之后,您可以设置访问控制,然后提供要提供的访问。

可能是这样的:

using System.IO;
using System.Security.AccessControl;

private void SetFileAccess(string path)
    {
        var fileSecurity = new FileSecurity();
        var readRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.ReadData, AccessControlType.Allow);
        var writeRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.WriteData, AccessControlType.Allow);
        var noExecRule = new FileSystemAccessRule("identityOfUser", FileSystemRights.ExecuteFile, AccessControlType.Deny);
        fileSecurity.AddAccessRule(readRule);
        fileSecurity.AddAccessRule(writeRule);
        fileSecurity.AddAccessRule(noExecRule);
        File.SetAccessControl(path, fileSecurity);
    }

MSDN Link to File

MSDN Link to SetAccessControl Method

MSDN Link to File System Rights