问题标签 [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.

0 投票
2 回答
1970 浏览

vb.net - 进程间读写器锁定(或文件句柄和访问被拒绝)

好吧,先来点背景。我们需要一个进程间读/写锁。我们决定使用一个文件并使用 LockEx 和 UnlockEx 锁定第一个字节。该类在创建时会在系统临时文件夹中创建一个文件。该文件创建时具有读写访问权限并共享读|写|删除。我们还指定了 DeleteOnClose,这样我们就不会留下大量的临时文件。显然,AcquireReader 和 AcquireWriter 使用适当的标志调用 LockEx,而 ReleaseLock 调用 UnlockEx。
我们已经使用一个可以运行多个实例的小型应用程序测试了这个类,并且它运行良好。使用它的应用程序有问题,我们已设法在另一个小型测试应用程序中重新生成。在伪代码中是

第一次运行时,它运行良好。如果您尝试再次运行它,而第一次的子进程仍然持有锁,我们会在尝试打开文件时收到 UnauthorisedAccessException。
这似乎是一个权限问题,而不是共享冲突,但此测试用例中的所有进程都以同一用户身份运行。这里有人有什么想法吗?

我注意到另一个问题,它建议使用互斥锁和信号量来实现我们想要的。我可能会改变我们的实现,但我仍然想知道是什么导致了这个问题。

0 投票
2 回答
216 浏览

encryption - 安全使用加密文件

我正在使用 Borland Delphi 7 中的 dBASE 数据库文件编写应用程序。

注意:我认为这个问题与文件安全​​相关,您可以在这个问题中忘记 dBASE 的东西(将其视为 TXT 文件)。

数据库必须仅由应用程序访问。然后它必须被加密。不幸的是 dBASE 不支持任何密码机制,我不得不自己加密文件(而且我还必须使用 dBASE)

您建议使用什么方法来保护数据库文件?

最简单的是:

  1. 加密数据库文件并将其放置在应用程序 EXE 文件旁边。
  2. 当应用程序运行时,它应该解密文件(使用硬编码的密码)并将结果复制到具有DeleteOnCloseNoSharingPermission标志的临时文件。
  3. 关闭时,应用程序应加密临时 dBASE 文件并用新的加密文件替换旧的加密文件。

我认为这是一种公平安全的方法。但它有两个大问题:

  1. 使用取消删除工具,用户可以恢复和访问已删除的临时文件。
  2. 更糟糕的是:当应用程序运行时,如果系统突然重新启动,DeleteOnClose标志失败并且临时文件保留在硬盘上,用户可以访问它。

至少第二部分有什么解决方案吗?

还有其他解决方案吗?

0 投票
2 回答
291 浏览

security - 通过 Web 保护文件:基于细粒度授权的文件访问

我有一个系统,员工可以上传文件。有三种方式

以公共、私人或保护模式上传到我的帐户 以公共、私人或保护模式
上传到部门帐户 以公共、私人或保护模式
上传到组织帐户

公开对任何人可见,仅对组或个人私有,对组织中的任何人都受保护。

组织的所有文件都存储在文件服务器上的一个目录中,例如 /files/<organizationId>/

文件
+-- 234809
| +img1.jpg
| +doc1.pdf
+-- 808234
| +doc2.pdf

我在数据库中存储文件路径和隐私级别。因此,我可以控制是否在给定页面上向用户显示文件 URL 的链接。

问题是,我对文件的 URL 没有任何控制权......所以,如果有人在他的浏览器地址栏中键入 img1.jpg 的 URL,则无法知道登录用户是否有资格看到 img1 .jpg。

有什么建议吗?


它是一个 Java 应用程序。但是,Glassfish 有一个单独的实例作为文件服务器工作。由于该应用程序尚未发布,因此我们愿意采用更好的文件访问策略。

访问文件的用户可能已登录,也可能未登录。但如果我们知道正在访问的文件是私有文件还是共享文件,我们始终可以通过重定向到登录页面来验证用户身份。

谢谢
尼山特

0 投票
2 回答
3042 浏览

visual-studio - 如何删除“加密内容以保护数据”

我的网站在加载从“Superfish”作为包下载的图像、css 文件和 javascript 文件时出现问题。

我发现问题出在每个文件上的“加密内容以保护数据”。好的,所以我右键单击-> 属性-> 高级并取消选中“加密内容以保护数据”设置。

但是,当我使用 Visual Studio 2010 重新发布时,已发布的文件会再次标记设置。源文件没有设置标志,只有发布的文件。在开始发布之前删除所有文件。

我已经通过将内容粘贴到新文件中完全重新创建了每个文件,但是当它们被复制到标志时仍然被重置。

我已经尝试发布到另一个文件夹,但是新文件仍然是使用加密内容设置创建的。

似乎 Visual Studio 仍然认为应该标记此设置,或者它正在从尚未删除该设置的某个地方复制文件的缓存版本。

如何在每次发布后阻止设置被重新标记?

0 投票
2 回答
5557 浏览

c# - 为所有用户设置 c:\program files\company\app\file 的文件权限

我有一个运行良好的自定义安装程序,但它每次更新应用程序时都会要求用户获得管理员权限。我正在创建一个跳过此部分的 Windows 服务,但 Windows 服务仅授予文件的系统和管理员权限,并且用户无法执行新的更新。

为了纠正这个问题,我正在尝试(在文件下载/安装到正确的位置之后(在 Windows 服务中,它有帐户 ServiceAccount.LocalSystem),

但设置不生效。我应该从这里做什么?

0 投票
1 回答
433 浏览

c# - 未设置 FileSecurity

对于一个单独的项目,我的代码读入一个文件,销毁旧文件并构建新文件等。但是我需要从旧文件中获取 FileSecurity AccessControl 并将其应用于新文件。我对 C# 相当陌生,所以我以前没有使用过 FileSecurity,下面是我想出的,它没有错误,但它似乎也不起作用。

我要做的测试是让用户完全控制文件。将程序运行到前半部分,删除文件并在没有完全控制的情况下再次创建它,然后让程序完成。但是,当我转到文件的安全选项卡时,它不会显示完全控制。我还尝试在删除旧文件后创建一个新的 FileInfo 对象,但这也不起作用。

任何建议都会很有帮助

0 投票
4 回答
891 浏览

video - 如何保护视频不被下载

所以我正在为客户创建卡拉 OK 网站,我需要保护下载的视频。比如他可以放flash视频,我怎么能确保没有人可以下载它们,因为它将是网上商店,人们可以在那里购买歌曲并播放大约1小时,然后它就赢了不能,但问题是,如果他们买了一个小时,他们就可以下载它,想玩多久就玩多久。你有什么建议吗?

0 投票
1 回答
349 浏览

.htaccess - 阻止用户访问上传的文件

我有一个模块,使用户能够将照片上传到某个路径,例如

域/媒体/img/uploadedFiles/

我想用户可以将照片上传到这个位置,但他无法通过写信访问上传的照片

domain.com/media/img/uploadedFiles/文件名

我已经实现不使用 .htaccess 文件列出该路径中的文件,但如果用户知道上传文件的名称,他仍然可以访问该文件。

谢谢

0 投票
1 回答
30 浏览

authentication - 网络托管文件授权

我使用基于 PHP 的登录身份验证机制来允许/限制对我网站的某些部分(文件夹module1module2等)的访问,但我在限制对文件的访问时遇到了问题。我使用了文档文件夹(如下所示)来托管一些可下载的文件。这些文件的链接出现在 index.php 中(托管在目录中)。但是,如果由于某种原因,未经授权的用户获得了文件中文件的 URL,他将能够下载它。

PS:因为这是一个内网网站,所以我限制了通过 IP 访问文档,但是仍然有很小的机会有人使用具有允许 IP 地址的 PC 并且他有文档的 URL。

0 投票
2 回答
1542 浏览

c# - 为包含许多文件的文件夹设置 ACE 慢

我们创建了一个应用程序,它提供了在某个 Active Directory 组的 Windows 文件夹上设置递归“拒绝”的能力。基本上与进入 Windows 资源管理器中的属性对话框并单击安全性和添加具有拒绝权限的 AD 组相同。我们正在使用这段代码:

现在我们遇到了一个大文件夹,里面有很多html文档,大约12000个文件,上面的方法很慢。处理文件安全性大约需要 7 分钟。但是,当通过 Windows 资源管理器/安全性管理安全性时,只需要大约 20 秒,因此必须有一些方法可以在 C# 中对此进行优化。

编辑:当我省略递归并仅在顶级文件夹上设置 SecurityDescriptor 时,它下面的所有文件都没有拒绝 AD 组,只有顶级文件夹。