在我的网络应用程序中,我删除了这些字符:
(<,>,:,“,/,\,|,?,*)
从我的文件下载网址,以防止路径遍历。
有没有办法绕过这个?
安全吗?
答案 0 :(得分: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" />