5

在我的网络应用程序中,我删除了这些字符:

( < ,> ,: , ,/ ,\ , | ,? ,* )

从我的文件下载 url 以防止路径遍历。

有没有办法绕过这个?

它安全吗?

4

1 回答 1

6

查看以下指南: http: //msdn.microsoft.com/en-us/library/ff647397.aspx,但与您的问题相关的部分在下面突出显示。

如果您必须接受文件名作为输入,请使用 System.IO.Path.GetFileName 使用文件的全名。

另外,如果您想进一步保护您的网站:

使用代码访问安全性来限制文件 I/O 管理员可以通过将应用程序配置为在中等信任下运行,将应用程序的文件 I/O 限制在其自己的虚拟目录层次结构中。在这种情况下,.NET 代码访问安全性确保不允许在应用程序的虚拟目录层次结构之外进行文件访问。

通过在 Web.config 或 Machine.config 中设置元素,您可以将应用程序配置为以中等信任运行。 <trust level="Medium" />

于 2013-10-23T11:25:35.003 回答