【问题标题】:Make Files Accessible by Perl Script but Blocked from Web Access - IIS6使文件可被 Perl 脚本访问但被 Web 访问阻止 - IIS6
【发布时间】:2012-09-18 21:16:28
【问题描述】:

我在带有 IIS6 的 windows 2003 服务器上使用 perl。我编写了一个脚本,需要访问用户上传的机密文件。这些文件存储在 cgi-bin 的文件夹中。但是,我不希望通过网络链接访问这些文件。所以,我在 IIS 中禁用了这个特定文件夹的“读取权限”。

这些文件无法通过网络链接访问,但我需要用户能够打开他/她上传的文档。

用户登录信息(用户名和密码)存储在 cgi-bin 的 csv 文件中。

我已经搜索了数据库,但找不到与这种情况完全匹配的任何内容。

任何想法将不胜感激!

【问题讨论】:

  • 加密它们并将密钥放入 Perl 脚本中?
  • 谢谢你,Triplee。我将尝试该选项并报告。
  • 是否有一个很好的例子来说明如何做到这一点?我现在正在尝试 PHP。这是我拥有的代码(无需加密即可工作),但它不会上传加密文件。对不起...新的。 'if (isset ($_POST['submit'])) { // 处理表单。 $document = fread(fopen($_FILES['thefile']['tmp_name'], "r"), filesize($_FILES['thefile']['tmp_name'])); $encoded_document = base64_encode($document); @mkdir ("文件/$用户名/$newdir"); if (move_uploaded_file ($encoded_document,"files/$username/$newdir/$encoded_document"))'

标签: windows perl iis-6


【解决方案1】:

除非我误解了您的问题,否则您试图在应用程序级别而不是服务级别限制用户访问。

如果您希望您的网络应用程序的用户能够访问他们上传的文件,那么您的授权检查需要在应用程序中完成,而不是在边缘(通过网络服务器)。

因此,每个上传的文件都标有它的所有者(数据库记录或每个所有者的目录),并且对文件的访问受到一小段代码的限制,该代码将经过身份验证的用户与文件所有者进行检查。

Web 服务器用户可以读写文件所在的目录,因为这是 perl 将运行的用户,但它没有配置到 IIS 中以用于常规 HTTP GET 访问。 它既不在 HTML 文档根目录下,也不在 CGI-BIN 目录下。这是一个完全独立的目录。

【讨论】:

  • 谢谢你,莱恩。这是一个有用的想法。但是,我仍然希望在脚本实际访问它们之前对文件进行加密。
  • 密钥和密码不属于程序。将它们放在配置文件中,并让程序根据需要读取它们。然后你让 web 服务器用户成为唯一对配置文件有读取权限的用户,如果可以的话,你删除写权限,这样任何人都不会意外保存在配置文件的顶部。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2019-10-04
  • 2021-04-15
  • 2019-12-16
  • 1970-01-01
  • 2011-02-10
  • 2022-11-28
相关资源
最近更新 更多