如何确保没有人从我的websever中的文档根目录中访问文件

问题描述 投票:0回答:1

我目前正在使用C语言中的Web服务器。我想确保访问文档根目录之外的文件是不可能的,我需要编写一个检查该文件的请求文件/路径的函数(例如/ index.html)并确保没有办法退出我的文档根目录(例如/../会使它脱离文档根目录)。我正在考虑只是检查../并删除它,但后来有人可以请求.... //,如果我们删除../那将是../再次。是否有一些聪明的方法可以做到这一点,我没有想到?

c server document-root
1个回答
2
投票

使用realpath

realpath - 返回规范化的绝对​​路径名

它将返回绝对路径名,所有符号链接,所有./和所有/../解析。用realpath解决后再存储“文档根目录”。之后你可以简单地用memcmpstrcmp解析路径来记录root,并将已解析的路径名指向你想要测试的路径。

© www.soinside.com 2019 - 2024. All rights reserved.