2014-02-09 17 views
0

我的生產服務器最近得到了許多訪問探測器(試圖找到一個入侵點,對於URI像/admin.php,/ administrator,/wp-login.php等),我注意到Apache(IP4)報道的一些REMOTE_ADDR有兩個點應該有一個點。「..」(雙點)在其他有效的IP4增量中,例如183.60..244.37

這是怎麼回事?這是服務器隱藏的方式嗎?

首先,這意味着我需要將它們記錄到比預期更廣闊的領域。預計將xxx.xxx.xxx.xxx或15個字符,但是這可能使16甚至19

[編輯:或者更好的是50,見this]

+0

報告在哪裏? –

+0

@Shane Madden:來自php的$ _SERVER ['REMOTE_ADDR']。這是你問的嗎? –

回答

1

什麼是你在這個變量做你的代碼?我預計它會以某種方式進行翻譯或解析,這會增加額外的時間。

Apache不太可能以這種方式報告它,因爲這將作爲IPv4地址無效。

將您的輸出與Web服務器的訪問日誌進行比較,該日誌將記錄遠程IP,如Apache所看到的。

+0

有趣的想法。我正在查看實際的日誌,到目前爲止我只看到183.60.244.37。但是,我的錯誤報告通過電子郵件發送並記錄顯示:183.60.244.37和有時183.60..244.37,即兩種方式。爲了回答你的問題:我的代碼把它放在MySQL查詢中,主要使用下面的代碼:$ query =「INSERT INTO log(IP)VALUES('{$ _SERVER ['REMOTE_ADDR']}');」;然後被我運行多年沒有問題的代碼用來調用MySQL來執行它。我猜測Apache記錄器可能會清理它,所以日誌會是正確的。接下來我會去問Apache。 –

+0

從PHP文檔看來,$ _SERVER數組直接來自HTTP請求頭,我猜在Apache清理之前。 –

+0

@Elipticalview這不完全正確,因爲遠程地址來自TCP連接,而不是HTTP標頭。如果系統以某種方式聲稱連接來自具有'..'的IPv4地址,則系統不會執行清理操作,並且Web服務器將徹底崩潰並且無法處理請求。 –

3

這個問題發生在你的應用程序(等)中的某些代碼正在進行格式化。

IP地址實際上是一個4個無符號字節的數組。它們通常以「ddd.ddd.ddd.ddd」的形式表現在字符方面(用於人類消費),但這不是基本表示。基本表示根本沒有點。

因此,您所看到的多餘點與IP地址轉換爲字符串的方式或將結果字符串合併到消息中或這些消息被處理並最終顯示時存在一些問題。額外的點不「意味着」任何東西......除了......可能......說一些字符被遺漏了。

沒有更多信息,我們不能告訴你這些點來自哪裏,或者如何阻止它們。


有什麼用了?這是服務器隱藏的方式嗎?

沒有。

在您的系統首次看到這些IP地址時,它們與其他IP地址一樣是4字節形式。點並不是一種新的隱藏方式。相反,它們只是記錄事物方式的本地問題的結果。


UPDATE

看你的「一半的答案」的證據,一種可能性是,你有一些進展監測和調試代碼的地方,偶爾會輸出一個「點」到輸出流。它看起來像它會在不同的線程...

到目前爲止我的託管公司只說我可以清理這些值。

他們是對的。但是你可能想找到你的應用程序在哪裏注入垃圾並修復它,而不是按摩日誌文件。

0

一半的答案是因爲它直接從HTTP請求來爲服務器提供到PHP它顯然可以從other reports被欺騙PHP的$ _ SERVER [「REMOTE_ADDR」]是不可信的。

EDIT2:我最近發現了兩個更壞的變量從$ _SERVER雙點,如下所示:

SERVER_ADDR   REMOTE_ADDR  REQUEST_TIME_FLOAT 
184..154.227.128 183.60.244.30  1391788916.198 
184.154..227.128 183.60.244.37  1391788913.537 
184.154..227.128 183.60.244.37  1391788914.368 
184.154..227.128 184.154.227.128  1391086482.1889 

184.154.227.128  183..60.244.30  1391788914.1494 
184.154.227.128  183..60.244.37  1391788913.0523 

184.154.227.128  183.60..244.37  1391788911.5938 
184.154.227.128  183.60..244.37  1391788914.3977 

184.154.227.128  183.60.244.37  1391788911..9855 

到目前爲止,我的託管公司只說我可以清理這些值。這很容易,但清理垃圾仍然是垃圾。如果點可以和正在被添加,那麼數字可以也可能會被改變,我想。姆?

參見:this comment from the php manual

現在問題出在哪裏從訪問客戶端找到可信IP? Apache有它,我猜來自與客戶端的傳入http數據包交換。 (我會問這個問題:在StackOverflow中)。

相關問題