【发布时间】:2016-04-13 18:29:02
【问题描述】:
我有一个 IIS 服务器(在公共互联网上)上的休息应用程序,其配置如下:
- IP 地址:A.B.C.D
- 主机标头:something-not-public-dns.example.com
(该条目不在公共 dns 中只是因为它不是必须的。这不仅仅是通过隐藏主机标头来实现安全性。)
为了让我的客户端连接到应用程序,我只需在我的 hosts 文件中添加一个条目:
A.B.C.D something-not-public-dns.example.com
使用 hosts 文件条目,一切正常。
问题是我的一个客户位于 ASP.NET Web 应用程序中,我无法修改该应用程序所在的 Web 服务器的主机文件。
所以我的问题是 - 是否可以在 Web 应用程序内欺骗主机文件条目?
我在想这样的事情:
string url = "something-not-public.example.com/myservice/mymethod";
var client = new WebClient();
client.Headers[HttpRequestHeader.ContentType] = "application/json";
// Set the destination IP for this request here!
string json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(MyObject);
string response = client.UploadString(url, json);
我会考虑上面的示例 request 级别的欺骗,这很好,但我也很想知道 application 级别的欺骗是否也可以完成。这样,应用程序可以设置主机条目,并且从该应用程序中发出的所有请求都将使用它们。
【问题讨论】:
-
@Jack - 我不能轻易判断那是不是骗子。如果是这样,那么对于这个特定问题,这是一个非常丑陋的解决方案! :D
-
我同意,虽然 easyhook 解决方案可行,但接受的答案是一个更好的解决方案。每天学习新事物