问题标签 [go-http]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 阻止来自 gorilla/mux 的打开 URL 重定向
我正在使用 Go + gorilla/mux v1.4 框架开发一个 RESTful Web 应用程序。发布后的一些基本安全测试揭示了应用程序中的开放 URL 重定向漏洞,该漏洞允许用户使用外部 URL 提交特制请求,导致服务器以 301 重定向响应。
我使用Burp Suite对此进行了测试,发现任何重定向到应用程序中外部 URL 的请求似乎都以 301 Moved Permanently 响应。我一直在寻找在发送 301 之前拦截这些请求的所有可能方法,但这种行为似乎已融入 net/http 服务器实现。
这是发送到服务器的原始请求 (myapp.mycompany.com:8000):
任何时候的响应都是:
尽管检查了 request.URL 以防止在 http.handler 中发生这种类型的重定向,但我没有任何运气让请求到达处理程序。似乎基本 http 网络服务器正在执行重定向,但不允许它访问我在 PathPrefix("/").Handler 代码中定义的自定义处理程序代码。
我的目标是确保应用程序针对此类请求返回 404-Not Found 或 400-Bad Request。有没有其他人遇到过大猩猩/多路复用器的这种情况。我在一个 Jetty 网络应用程序上进行了同样的尝试,发现它返回了一个完全有效的 404。我已经在这工作了几天,并且真的可以使用一些想法。
go - 在 Go 中发出 HTTP 1.0 请求
有什么方法可以发出 HTTP 1.0 请求吗?
Go 总是恢复使用 HTTP 1.1
我尝试将 request.Proto 设置为 HTTP 1.0 但它没有改变任何东西
go - 在 Go 中不使用内置 DNS 解析器(使用代理时)为域使用自定义 IP
我正在开发一个应用程序,它必须通过 HTTP 代理进行连接,然后使用该连接对域名进行 GET 请求。域名应该手动解析,例如给它它应该拨打的IP。这正是我面临的问题。
使用上面的代码,IP 地址将使用 DNS 自动解析。如何用自己的 IP 为客户提供服务?
使用的包:“golang.org/x/net/proxy”“github.com/magisterquis/connectproxy”
提前致谢。
go - 中间件 HTTP 测试在不应该通过时通过
我编写了一些中间件来检查以确保 JWT 令牌有效:
我已经尝试为此编写一些测试,但我只能掌握我哪里出错了,测试应该失败,因为令牌无效但它仍然通过:
有人可以解释我要去哪里错了吗?
http - 使用 ErrorCode CANCEL 看到 http2 RST_STREAM 帧
看到一些流从客户端发送到服务器的 RST_STREAM 和 CANCEL。添加了两个流数据,在一种情况下看到 RST_STREAM,在另一种情况下没有。
看到 RST_STREAM 的 HTTP2 流
看不到 RST_STREAM 的 HTTP2 流
我不理解这里的行为。由于已经在响应数据中收到了 END_STREAM,为什么 http2 堆栈正在发送 RST_STREAM。
Note1: 使用 golang 的 http2 包golang.org/x/net/http2
注2:两种流的数据内容没有区别
go - 如何在方法中包装 http.Handler
在 go 中获取文件系统的最简单方法是下面的代码。
但是出于客观设计的目的,我更喜欢将函数体包裹在这样的方法中。
我应该如何将代码内容包装在文件结构方法中?
go - golang http客户端返回错误的内容类型
我有一个非常简单的 Go 程序,它在 URL 上执行 HTTP HEAD,并打印响应的内容类型:
当我运行它时,它返回以下内容:
但是,当我使用 执行相同操作时curl
,它会返回不同的内容类型(在原始响应中和重定向之后):
难道我做错了什么?Go 中有没有办法为此类 URL 获取正确的内容类型?我在 Ubuntu 上使用 Golang 1.14.4。上述 URL 不是唯一存在此问题的 URL。
http - 从 url 中删除尾部斜杠 - Go static server
我已经建立了一个简单的 Go 静态文件服务器http.FileServer
。如果我有一个类似的目录结构public > about > index.html
,服务器将正确解析/about
为about > index.html
,但它会添加一个尾部斜杠,因此 url/about/
变为
有没有一种简单的方法可以在使用时删除这些斜杠http.FileServer
?最终,它可以以任何一种方式工作——如果可能的话,不使用尾部斜杠主要是个人喜好。
go - FileServer 使用 MIME 类型错误而不是 404 处理 not found css
我正在运行一个基本http.FileServer
的静态站点服务,我遇到了一个问题,即对不存在的 css 文件的请求因 MIME 类型错误而被取消:
理想情况下,我更希望用 404 错误来处理它,因为它实际上应该是这样的。我可以尝试任何可能的解决方法吗?
http - 使用 http.FileServer 处理自定义 404 页面
我目前正在使用基本http.FileServer
设置来提供简单的静态站点。我需要使用自定义未找到页面来处理 404 错误。我一直在研究这个问题,但我无法确定最好的解决方案是什么。
我已经看到了一些关于 GitHub 问题的回复,内容如下:
您可以实现自己的
ResponseWriter
,它在WriteHeader
.
这似乎是最好的方法,但我有点不确定这将如何实现。如果有此实现的任何简单示例,将不胜感激!