我的Web服务器中有一个文件夹,供用户使用ASP页面上传照片。

给IUSR对该文件夹写权限是否足够安全? 我还必须确保其他东西吗? 我担心黑客会绕过ASP页面并将内容直接上传到该文件夹​​。

我在Windows 2003 Server上使用ASP Classic和IIS6。 上载是通过HTTP而不是FTP。

编辑:为清楚起见更改问题,并将我的答案更改为评论。

===============>>#1 票数:3 已采纳

另外,我建议不要让用户上载到可从网络访问的文件夹中。 即使是最好的MIME类型检测,也可能会失败,并且您绝对不希望用户在MIME嗅探失败的情况下上载伪装成jpeg的可执行文件,但IIS中的那个可以正常工作。

在PHP世界中,情况甚至更糟,因为攻击者可以上传恶意的PHP脚本,然后再通过Web服务器对其进行访问。

始终将上传的文件始终存储在文档根目录之外的目录中,并通过一些进行额外清理的访问脚本来访问它们(至少显式设置图像/任何MIME类型。

===============>>#2 票数:1

用户将如何上传照片? 如果您正在编写一个ASP页面以接受上载的文件,则只有IIS运行身份的用户才需要对该文件夹进行写权限,因为IIS将执行文件I / O。 您的ASP页应检查文件大小并进行某种形式的身份验证,以防止黑客填充硬盘驱动器。

如果要设置FTP服务器或其他文件传输方法,则答案将取决于您选择的方法。

===============>>#3 票数:0

您必须授予写权限,但是您可以检查文件的mime类型以确保图像。 您可以这样使用FSO:

set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("upload.jpg")
'image mime types or image/jpeg or image/gif, so just check to see if "image" is instr
if instr(f.type, "image") = 0 then
   f.delete
end if
set f=nothing
set fs=nothing

此外,大多数上载COM对象都具有type属性,可以在写入文件之前对其进行检查。

===============>>#4 票数:0

最好的选择可能是使用一个上载组件(我使用过ASPUpload),该组件使您可以从无法从网站访问的文件夹中上载/下载文件。

您将获得一些身份验证挂钩,而不必担心有人随便浏览文件夹并下载文件(或在您的情况下上传),因为这些文件仅可通过组件获得。

  ask by Eduardo Molteni translate from so

未解决问题?本站智能推荐:

1回复

如何启用文件系统访问Web服务?

我有一个C#/ .Net应用程序,它本质上是一个胖客户端数据收集应用程序。 给定一个部件号,它会执行一些数据库查询(对外部Orcale数据库),一些Sharepoint查询,还会搜索一些网络驱动器以获取相关信息。 现在,我正在尝试将其更改为面向服务的体系结构。 Web服务现在驻留在服务器上
2回复

自动在Windows Server上压缩PDF文件

我有一个用户PDF上传提交系统,而通常情况下,当我们只需要它们进行Web尺寸查看时,用户会上传原本打算用于打印的超大PDF。 我需要在服务器上自动压缩它们。 我们正在运行Windows Server 2003 。 现在,我们只是让用户通过SoftArtisans.FileUp方法上传PDF
1回复

是否有配置文件可使用IIS6和ASP Classic设置自定义404页面?

我想设置一个自定义的404页面。 我知道可以通过IIS管理控制台执行此操作。 但是,我想改一个文件(就像asp.net的web.config一样)。 这样,我可以提供该文件的副本以上载到我无法直接管理的另一台服务器。 我不信任具有管理员角色的人员使用管理控制台正确设置参数
3回复

我可以更改通过IIS(使用ASP.NET)保存的文件的所有者吗?

有没有一种方法可以在Windows Server上使用IIS更改保存文件的所有者。 越容易越好。 没关系,这必须在保存过程中完成,也可以在文件已保存到光盘后更改文件所有者。 ASP.NET中的一个示例非常受关注。
2回复

防止ASP.NET页面在子文件夹中执行

我有一个dotnet站点,其中包含一个虚拟目录(/ ArticleImages),该目录映射到另一台服务器上的文件共享。 文件共享可供许多人访问,因此,出于安全考虑,我不希望在此文件夹中执行任何asp.net页(例如,将default.aspx放入文件共享中并浏览到site.com/Artic
2回复

(NT AUTHORITY \\ NETWORK SERVICE)没有到“C写访问:\\ WINDOWS \\ Microsoft.NET \\框架\\ V2.0.50727 \\临时ASP.NET文件

我已经阅读了有关此问题的所有文章,并在那里做了几乎所有可能的解决方案,但是都没有运气。 我什至创建了一个新帐户,并授予该帐户访问网络文件夹c:\\ WINDOWS \\ Microsoft.NET \\ Framework \\ v2.0.50727 \\ Temporary ASP.NE
1回复

Windows Server 2003上的IIS 6.0安装程序用于集成Windows身份验证,但用户无法直接访问共享文件夹

我试图将运行在Windows Server 2003上的IIS 6.0应用程序设置为使用模拟,以避免必须向用户提供对存储数据库和网页的共享文件夹的直接读/写访问权限。 谁能提供给我有关如何将其设置为与Windows Integrated Authentication结合使用的详细信息?
1回复

IIS6访问应用程序主文件夹的父文件夹

好。 对于这个问题可以轻松测试的事实,我感到非常抱歉,但是我需要为明天计划这个问题,而我现在没有办法对其进行测试。 如果您愿意帮助我,我愿意失去声誉。 场景:我得到了 -iis wwwroot -domainfolder(DynamicWeb安装) -目标文件夹 -子
1回复

IIS 6子虚拟应用程序不使用.Net 4.0 Bin文件夹

我在Windows 2003的IIS 6中有一个带有子虚拟应用程序的.NET站点。 网站结构如下: MyWebSite(指向d:\\ MyWebSite \\ Versions \\ 1.2) 模板(虚拟应用程序,指向d:\\ MyWebSite \\ Common
4回复

如何将上载文件夹与ASP.Net群集在一起?

在这种情况下,允许用户上传内容,然后分别进行一些更改,然后基于这些更改提交表单。 在单服务器非故障转移环境中,这种方法可以正常工作,但是我们需要某种解决方案,在支持故障转移的服务器之间共享文件。 过去有人遇到过这种情况吗? 您能开发出什么样的解决方案? 显然,坚持使用数据库是一种