FileServer 处理程序是否仅服务于您指定目录中的内容?
Does FileServer handler only serve what is inside the directory you specify?
例如,用户可以将您的 url 与 linux 命令放在一起 folder/directory 吗?
假设我的服务器包括:
bin/
serverfile.go
...
public/
index.html
style.css
"www.example.com/../bin/etc"
和 serverfile.go 组成:
pacakage main
import "net/http"
func main() {
htttp.ListenAndServe(":8000", http.FileServer(http.Dir("public")))
}
http.FileServer 禁止突破您指定的根目录。
相比之下,您可以使用 http.ServeFile 构建自己的文件服务器,这可能是一项危险的任务。
另见
例如,用户可以将您的 url 与 linux 命令放在一起 folder/directory 吗?
假设我的服务器包括:
bin/
serverfile.go
...
public/
index.html
style.css
"www.example.com/../bin/etc"
和 serverfile.go 组成:
pacakage main
import "net/http"
func main() {
htttp.ListenAndServe(":8000", http.FileServer(http.Dir("public")))
}
http.FileServer 禁止突破您指定的根目录。
相比之下,您可以使用 http.ServeFile 构建自己的文件服务器,这可能是一项危险的任务。
另见