Node.js的`HTTP.IncomingMessage`有路径遍历攻击防护吗?

4xy9mtcn  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(103)

为了测试路径遍历攻击防护,我准备了SecredFile.png文件。因为不在public目录,所以正常情况下无法访问。
x1c 0d1x的数据
现在尝试通过REST客户端访问此文件(Chrome删除了../):



如果要检查request(HTTP.IncomingMessage类型)的url属性,它将是/SecretFile.png。是否是路径遍历攻击保护或否,URI已被更改,这至少是令人困惑的,因此可能是bug的原因。这样的行为好吗?
如果我们将URL变得更复杂,如http://127.0.0.1/test/../../SecretFile.png,结果也是一样的-request.url将是/SecretFile.png
我应该做什么开发后端框架?
相关的子问题是,如果http://127.0.0.1/../SecretFile.pnghttp://127.0.0.1/test/../../SecretFile.png的路径遍历攻击是不可能的,那么作为框架开发者,我必须提供哪些路径遍历攻击防护措施?

w51jfk4q

w51jfk4q1#

浏览器和其他HTTP客户端在将路径发送到服务器之前解释路径 * 中的...组件,因此当它到达那里时,它不再是一个问题。
然而,编写这样的代码是微不足道的。打开一个终端,运行telnet 127.0.0.1 80并输入:

GET /../SecretFile.jpg HTTP/1.0
Host: 127.0.0.0

字符串
(end用空行来完成请求)
有些漏洞(如本例中的路径遍历)只能通过做一些好的HTTP客户端不会做的事情来利用。

相关问题