问题标签 [file-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 保护目录中某些文件类型不被提供的最佳方法
我有一个目录“d:/resources/xxxxx/file-name.xxx”,它存储文件类型:.png、.xml、.pdf,这些文件可以由网站访问。在 IIS 中设置了一个虚拟目录“资源”,它指向这个硬盘驱动器位置,以允许通过 http 请求访问 .png 图像,但我通过它们的硬盘驱动器引用 .pdf 和 .xml 文件地点。这些文件是工作流程的一部分,因此它们必须全部保留在其当前目录结构中。
需要允许 IIS 提供 .png 图像,但出于安全目的,我不希望允许它提供 .pdf 或 .xml 文件。
我尝试设置一个 http 处理程序,它本来可以正常工作,但我无法使路径足够具体。如果我将它设置为“/resources/*”,那么我需要手动输出允许的文件类型,这有点奇怪。我无法将路径设置为“*.pdf”,因为应该允许其他目录访问其 .pdf 文件。
如果有人试图访问“www.mysite.com/resources/dir/mypdf.pdf”或“.../myxml.xml”但仍然允许访问,我只是在寻找一种直接的方式来限制访问。 png 和所有其他可能提供的文件类型。
另外,请让我知道我是否以错误的方式进行此操作。
asp.net - 如何隐藏xml文件?
如何隐藏xml文件?我不想在谷歌搜索结果中显示该文件。我如何拒绝用户访问此文件?
java - 如何在 Java 中制作自定义文件格式
我正在Android中制作应用程序。我在服务器上有很多文件,如 abc.doc、abc.xls、abc.mp3 等。我想将所有这些文件下载到单个文件中,如 .zip、.rar,然后将其存储在 SDCARD 上。由于安全问题,只有我的应用程序能够读取这些文件,没有其他应用程序能够读取它。
c++ - ERROR_ACCESS_DENIED 设置文件所有者
我正在尝试在 C++ 中以编程方式将文件的所有者设置为另一个用户。
我已经为我的流程启用了SeRestorePrivilege
。我可以使用 Process Explorer 确认这一点。我启动进程,它被禁用,我运行我的代码来启用它,ProcExp 将它报告为启用,我一直到要设置所有者的点,它仍然是启用的(即我不是不小心禁用了它)。
此访问被拒绝消息还有什么其他原因?我没有考虑什么?
谢谢你。
编辑:非常感谢您的持续帮助。非常感谢。
我将您的代码用于以下所有测试。基本上,我也从您的代码中收到拒绝访问消息,但是,我已经对其进行了更多跟踪。
首先,“C:\test.txt”不是我真正的代码,不幸的是缺少的反斜杠不是我的问题的原因。不过谢谢你敏锐的眼睛:)
另外,我正在运行禁用 UAC 的管理员帐户,并且我的程序在清单中设置了 requireAdministrator 。
但是,我注意到我的代码和您的代码都适用于简单文件。经过大量测试,我发现我只在以下情况下收到 AccessDenied 消息:
1:我不是所有者,并且“Take Ownership”权限设置为拒绝,例如所有人。
2:我是所有者,并且“Take Ownership”权限设置为拒绝,例如所有人。奇怪的是,在第二个实例中,尽管出现了故障代码,但所有权更改确实发生了。
我不明白为什么会这样。我和你已经在进程令牌中设置了 SE_RESTORE_NAME。我应该被允许任意设置所有者 SID。但好像我做不到。
似乎对 TakeOwnership DACL 的任何拒绝都会覆盖我获得所有权的能力。但是,在获得所有权之前,我无法更改权限!叹息。
我可能会尝试按照您最初的建议设置 SeTakeOwnershipPrivilege,将所有权归于自己,更改权限,在外部设置所有权。多么痛苦。而且我什至不是很有信心它会起作用。
我还发现了这个:http ://us.generation-nt.com/setnamedsecurityinfo-failing-rc-1307-help-59729462.html
他似乎处于类似的情况(如果我没有正确设置进程令牌,我会得到 1307)。但是 CreatePrivateObjectSecurityEx 需要进行更多设置。
嗯。谢谢你的时间。
c# - 取得文件c#的所有权
我正在尝试获取文件的所有权并通过 C# 将其删除。该文件是 iexplorer.exe,默认为当前所有者 - TrustedInstaller。FileSecurity.SetOwner 方法似乎设置了指定的所有权,但实际上并没有改变初始所有者并且没有抛出异常。显然,下一次删除文件的尝试会引发异常。应该在代码中进行哪些更改以获取文件的所有权并将其删除?
tomcat - 限制 Tomcat 中的文件访问
我们的产品存在严重的安全问题,它运行在 apache tomcat 服务器上,监听端口 80 和 443。这些端口上传入的 HTTP/HTTPS 数据包的路由是由我们的产品类配置的,无法确保每个请求的 URL 引用一个文件,它位于服务器的 Web 根目录中,并且属于允许提供的类型。
特别是,与 url 中的“/error/*”匹配的数据包被配置为使用“docroot”文件夹作为提供文件的文档根目录。因此,%5C
也可以访问和下载使用 URL 编码的反斜杠从 /error/ (即 docroot)目录中遍历出来的路径。例如,远程用户可以提供一个类似的 url –</p>
访问与 docroot 处于同一级别的远程文件 settings.properties。我们正试图通过防火墙规则和网络分段来克服这个问题。但是tomcat中有没有可以用来防止远程用户访问项目根文件夹外的文件的设置。那将非常有用。
asp-classic - 在浏览器中执行经典 ASP 加密文件
我已经加密了我的 ASP 文件。但是当我在浏览器中运行它时它失败了。如何执行该 asp 文件以便我的应用程序可以运行?如何解密它,它是使用工具加密的,我如何在执行时解密它?我不希望我提供该文件的任何人看到该文件的代码,但只能执行并使用它。
ios - iOS 中的安全文件存储
我正在开发一个应用程序,其中包括从应用程序与之对话的服务器下载一些文件。所以我打算将下载的文件(安静敏感)存储在 aLibrary 目录中。最好我会创建一个子目录(标记为隐藏)并将其存储在它下面。但是这个隐藏的子目录可以在越狱设备上轻松访问。
有没有办法可以将它安全地存储在越狱设备上也无法访问的库目录中?
我们可以在受密码保护的子目录中创建和存储文件吗?我们如何密码保护子目录或文件?
提前致谢
c# - 文件共享未按预期工作
我有一个文件共享问题,我的进程正在尝试读取一个日志文件,而它目前仍由 NLog 打开。在诊断问题时,我发现了一些令人惊讶的事情。以下失败:
第二个FileStream
构造函数调用失败:
尽管第一个FileStream
表明它愿意分享阅读。我发现更令人惊讶的是这有效:
嗯,是的,在打开第二个流时请求更多访问实际上绕过了这个问题。我完全困惑为什么会这样,只能假设我误解了一些东西。我已经阅读了 API 文档,但它们只是支持我当前的心理模型,说明它应该如何工作,与它的工作方式相反。
以下是文档中的一些支持引用:
此枚举的典型用途是定义两个进程是否可以同时从同一个文件中读取。例如,如果打开一个文件并指定了读取,其他用户可以打开该文件进行读取但不能写入。
这是另一个宝石:
以下 FileStream 构造函数打开现有文件并授予其他用户只读访问权限 (Read)。
FileStream s2 = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read);
任何人都可以阐明这种行为。我正在.NET 4 % Windows XP 上对此进行测试。
c++ - 在 Windows 中将文件所有者设置为不存在的用户/SID
我正在尝试编写一个备份和恢复工具。我在 WinPE CD ( http://en.wikipedia.org/wiki/Windows_Preinstallation_Environment ) 上运行我的代码。我正在尝试读取整个 C: 分区并将其写入网络。就像 tar 命令一样,但特定于 Windows。除了设置文件所有者外,我一切正常。Windows 似乎真的不能容忍未知 SID 拥有的文件。由于我在 WinPE 中运行,因此在 C: 上定义的大多数用户都不在本地用户数据库中。
以下是我尝试过的一些功能:
- SetFileSecurity(返回 1307)
- SetSecurityInfo(返回 1307)
- SetNamedSecurityInfo(返回 1307)
- 备份写入(返回 1307)
- NtSetSecurityObject(返回 0xC000005A)
我知道这是可以做到的。SetACL ( http://helgeklein.com/setacl/ ) 能够做到这一点。
所以,问题。如何将文件的所有者设置为不存在的用户/SID?任何帮助是极大的赞赏!
这是我尝试过的代码示例: