Http

ISP 正在修改從 localhost 提供的 HTML

  • August 1, 2014

我昨天帶著我的筆記型電腦去當地的一家餐館做一些工作來設置一個新的網路應用程序。我得到了伺服器,並創建了一個簡單的 HTML 頁面:

<html>
   <body>Hello, world.</body>
</html>

我啟動伺服器(Jersey),然後發出以下命令以確保一切正常:

curl http://localhost:8080/assets/index.html

想像一下,當我看到返回以下內容而不是我的簡單文件時,我會感到驚訝:

<html lang="en" xml:lang="en"><!PAGEREF 1>
<head><title>Eguide</title>
<script type="text/javascript" src="/all/rootscript.js"></script>
<script type="text/javascript" src="/cobrandscript.js"></script>

</head>
<!--
/yp/home.htm
<a href="http://webmailtest.bellsouth.net" target=_top>Webmail test</a>
v. 2.8b srv24
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="0;URL=http://home.bellsouth.net">
</head>
<body>
</body>
</html>
<html>
   <body>Hello, world.</body>
</html>

我的文件在底部,但在此之前有亂七八糟的程式碼以某種方式被注入。我的第一個想法是在我的系統中查找生成的 HTML 中包含的一些字元串(例如grep -ri cobrandscript,從根目錄執行)。我的系統上沒有可疑的文件。所以,我關閉了我的 wifi 並發出了相同的 curl 命令。這一次,我的 3 行 HTML 文件被返回,沒有任何添加。

似乎 ISP 正在將 HTML 注入到從 localhost 提供的 HTML 文件中。

我的問題是:這怎麼可能?這是localhost提供的內容;這意味著對 localhost 的請求實際上是在訪問外部網路,至少在連接時是這樣,而且這種行為對我來說似乎非常不正確。

聽起來您正在使用代理伺服器。即使您正在訪問 localhost,如果您尚未將代理設置配置為忽略 localhost,它將通過代理進行路由。您可能沒有配置任何代理,它可能只是您連接到的任何網路分發的網路配置的一部分。

採用 curl --noproxy localhost, http://localhost:8080/assets/index.html

引用自:https://serverfault.com/questions/617261