我目前在C语言的一个网络服务器上工作。
我想确保不可能访问文档根目录之外的文件,我需要编写一个函数来检查该文件的请求文件/路径(例如/index.html),并确保没有办法离开文档根目录(例如/./将使其离开文档根目录)。我正在考虑检查../并删除它,但是有人可以请求....//,如果我们删除../它,这将是../再次。有没有什么我没想到的聪明方法?
最佳答案
使用realpath:
realpath-返回规范化的绝对路径名
它将返回绝对路径名,并解析所有符号链接、所有./
和所有/../
。在用realpath
解析“document root”之后也将其存储。之后,您只需使用要测试的路径的解析路径名来memcmp
或strcmp
解析到文档根目录的路径。。
关于c - 我如何确保没有人可以访问Websever中文档根目录之外的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55836809/