Security 如何在提供文件服务的给定路径(从web服务器)上执行安全检查
我需要为web服务器编写一个小的文件服务组件。有很多问题需要解决 文件夹。因为“原样”是一个很大的安全漏洞,就像这样Security 如何在提供文件服务的给定路径(从web服务器)上执行安全检查,security,winapi,posix,filesystems,Security,Winapi,Posix,Filesystems,我需要为web服务器编写一个小的文件服务组件。有很多问题需要解决 文件夹。因为“原样”是一个很大的安全漏洞,就像这样 www.somesite.com/../../../../etc/passwd 有许多问题,包括“.”解决和许多其他问题,如在windows下有许多“引用某些路径的不寻常方式”。还有一些关于符号链接的问题。。。它们可能会使我们远离文档根 是否有关于提供文件和对其执行安全检查的好文章或材料 谢谢 注:我需要的解决方案主要是POSIX系统,但我也需要Win32的解决方案 p.p.S
www.somesite.com/../../../../etc/passwd
有许多问题,包括“.”解决和许多其他问题,如在windows下有许多“引用某些路径的不寻常方式”。还有一些关于符号链接的问题。。。它们可能会使我们远离文档根
是否有关于提供文件和对其执行安全检查的好文章或材料
谢谢
注:我需要的解决方案主要是POSIX系统,但我也需要Win32的解决方案
p.p.S.:
- 检查“.”和符号链接是否足以用于POSIX系统?(据我所知,它不适用于Windows)
- 据我所知,Windows为这些目的提供了某种API,有人能指出它吗
realpath
,在Windows下使用GetFullPathName
最后一点注意:如果有什么建议更详细的功能,我会接受它(特别是在Win32中,路径测试很麻烦-…)看起来您正在处理路径遍历-。
该链接主要涉及web应用程序,但我认为其中的一些信息会有所帮助。我认为POSIX系统的最佳实践是chroot,不允许访问应用程序根目录之外的路径 看起来您正在处理路径遍历-。
该链接主要涉及web应用程序,但我认为其中的一些信息会有所帮助。我认为POSIX系统的最佳实践是chroot,不允许访问应用程序根目录之外的路径 对于Windows API产品,有一组Shell函数,它们以
Path
和Url
开头,可以帮助规范化目录、路径和文件名。例如,将帮助您将任意路径转换为标准表单。从那里你可以做进一步的分析
通常,使用一个特定的允许事项列表,而不是一个不允许事项列表。坏人总是会想到你没有预料到的新东西。至于Windows API产品,有一组Shell函数,它们以
Path
和Url
开头,可以帮助规范化目录、路径和文件名。例如,将帮助您将任意路径转换为标准表单。从那里你可以做进一步的分析
通常,使用一个特定的允许事项列表,而不是一个不允许事项列表。坏人总是会想到你没有预料到的新事物。但至少最佳实践应该是;)请您对您的Web服务器更具体一点,这是一个专有的解决方案还是基于一些开源Web服务器。我认为,大多数(如果不是全部的话)Web服务器已经有了一些防范此类攻击的措施,因为它们已经存在了很长时间。这是FOSS服务器,但不是基于现有代码。但至少最佳实践应该是;)请您对您的Web服务器更具体一点,这是一个专有的解决方案还是基于一些开源Web服务器。我认为,大多数(如果不是全部的话)Web服务器已经有了一些防范此类攻击的措施,因为它们已经存在多年了。这是FOSS服务器,但不是基于现有代码。谢谢。我知道chroot是最好的方法,但它需要root previleges,并且不能在win32twork上使用。我知道chroot是最好的方法,但它需要根目录前缀,并且在Win32上不可用。不幸的是,如果我通过“./test.txt”它将不会删除“../”。这并不意味着
pathcononicalize
是一个完整的解决方案。它是可以帮助您规范化路径的几个函数之一。你可能不得不和其他人一起使用它。您还可以查看InternetCrackUrl
“PathCanonicalize”如果我通过了“./test.txt”它将不会删除“../”,这并不意味着PathCanonicalize
是一个完整的解决方案。它是可以帮助您规范化路径的几个函数之一。你可能不得不和其他人一起使用它。您还可以查看InternetCrackUrl
。