2014-05-01 95 views
0

最近我看到一个在ASP.Net中开发的Web应用程序,其中的用户被允许从存储在app_code文件夹中的网页上载Excel文件。然后读取该文件并将其存储到数据库中,并在加载后从文件夹中删除。所以我的问题是,将用户上传的文件存储在app_code文件夹中是否正确?是否允许用户将文件上传到app_code文件夹?

回答

1

不允许用户上传任何东西到app_code。上传到app_code文件夹的类文件会在整个应用程序中自动编译和引用。这将是一个巨大的安全漏洞,让用户上传文件到那里。

+0

文件临时存储在文件夹中(10到15秒),并在数据加载完成后立即删除。它会不会导致安全问题?如果是,那么存储用户上传文件的最佳位置是什么? – praveen

+0

再次,上传到app_code文件夹的任何内容都会被编译,并且*立即*在整个项目中被引用。这是一个巨大的安全漏洞,允许用户将任意文件上传到app_code。您最好创建一个名为“Uploads”的文件,并使用Server.MapPath(“〜/ Uploads”)引用它。无论采取什么方法,都不要*允许用户上传到app_code。 – matt

1

通常,所有用户生成的内容都应该保持在应用程序路径之外。相反,在IIS中创建一个虚拟文件夹,指向一些专用文件存储位置,然后上传到该文件夹​​。通过这种方式,当您将更新推送到您的应用程序时,您不必担心会上传内容。