在这种情况下,我有什么办法可以避免上传敏感文件吗?

Is there any way for me to avoid uploading sensitive files in this situation?

我很快就会推出一个网站。它将在网络服务器上完全静态(只有 HTML 文件和 SVG 等),它们是在我的 PC 上动态生成的。它们将每十五分钟左右生成一次,然后使用 WinSCP 通过 SFTP 同步到网络服务器(因为 FileZilla 不支持 scripting/automation)。

我使用这个 WinSCP 命令:

synchronize remote "C:\sync dir" "/www_root"

根据WinSCP手册,这意味着它确保远程端与本地端相同。也就是说,本地目录中的任何文件最终都会出现在远程(网络服务器)目录中。我找不到“始终排除 JPG”或类似内容的任何选项。

我自己的控制脚本,运行s WinSCP sync 命令,在它 运行s WinSCP sync 命令之前计算本地目录的哈希值。在运行之后,它再次计算哈希并将其与第一个进行比较。如果不同,则意味着在开始同步和完成同步之间的目录中发生了一些变化。如果发生这种情况,它会通知我,但当然,那时已经太晚了。

在我的脚本 运行s WinSCP sync 命令之前,对目录执行一般检查,确保其中只有适当的文件。例如,如果它在其中的任何位置检测到 JPG 文件,它会停止一切并且不会 运行 同步命令。

问题是,可能是我不小心将图像(或任何类型的)文件移动或复制到本地目录,当它开始同步但尚未完成同步时。如果发生这种情况,如果它必须整天、每天每 15 分钟执行一次此过程,这很有可能,这取决于 WinSCP 开发人员如何实现该功能,我的私人文件将最终出现在网络服务器上!

虽然我网站的任何访问者都不太可能知道,但网络服务器主机很可能会记录和存储所有内容。即使他们不这样做,我也不希望这种情况发生。想想就毛骨悚然。

当然,我的文件资源管理器中的上传目录不会有任何“收藏夹”或其他书签(这会使这个问题更容易发生),但它仍然是 可能的 它可能会发生,这让我感到非常偏执。

我过去曾多次在目录中找到神秘文件(和快捷方式),我不记得放在那里,但最终解释为我在单击或按住鼠标时不小心移动了鼠标光标按钮等。它确实发生了,并且 Windows 通常不会询问您,只是立即非常巧妙地执行文件 move/copy 操作。

据我所知,没有(理智的)方法来启用某种“特殊处理”per-directory,例如“除非您发送此密码,否则创建此特定目录 read-only与它”之类的。 Windows 中有很多奇怪的东西,但我希望避免设置各种奇怪的权限和审核选项,如果可以以我没有想到的更明智的方式完成的话。

请注意:不,我无法将实际逻辑放在网络服务器上。而且我不能使用虚拟机。而且我不能使用 Docker。为什么我不能做这些事情有很重要的原因。由于复杂的原因,我需要以这种方式完成。这与安全有很大关系。是的,非常讽刺的是,我还在谈论安全 运行 Windows,等等。并非所有 Windows 用户都是一样的。我的 Windows 与 Windows 几乎没有任何相似之处。我自己不喜欢 Windows。这是一个复杂的世界,在我的情况下,必须这样做。

WinSCP 的 synchronize 命令有一个标志来强制执行文件掩码,恰当地命名为 -filemask:

-filemask=<mask>

Sets file mask.

WinSCP 可以使用其内置的 File Mask Dialog 功能帮助您构建所述掩码。将此实用程序的结果传递给您的脚本,以根据文件的类型或同步的其他条件包括和排除文件。