2011-09-07 70 views
1

我的服務器被一個討厭的javascript iframe病毒擊中。該木馬注入到每個index.php,index.html,& login.php文件中。病毒看起來像<script>VirusCodeCrap</script>PHP:如何使用str_replace?

是否有反正我可以使用PHP的str_replace函數來搜索我的服務器並刪除病毒?有誰知道我能找到一些關於如何做到這一點的例子嗎?

感謝,

阿爾伯特

+0

對不起,我在VirusCodeCrap周圍有javascript符號,但是他們在帖子後被取出。 –

+1

你的問題沒有很好的標題 - 如果標籤內的代碼不一樣,'str_replace'可能根本就不是解決方案。爲什麼不把它命名爲「如何從多個文件中搜索和替換病毒」或其他? –

+0

您需要刪除病毒本身,而不是現在修復文件。 – Sarfraz

回答

1

如果你是在Unix服務器上,sed是發現並在文件中替換文本的最佳方式。

如果必須使用PHP,該算法將是:

  1. 讀取一個文件到一個變量使用file_get_contents()

    $file_contents = file_get_contents($filename);

  2. 搜索替換有問題的字符串

    $file_contents = str_replace($the_offending_text, $the_replacement_text, $file_contents);

  3. $file_contents回使用file_put_contents文件:

    file_put_contents($file_contents);

str_replace()可能是不夠的,如果該字符串不是恰恰在每種情況下是相同的。如果有問題的字符串有變化,您可能需要使用正則表達式來定位和刪除它們。

0

我會立即刪除服務器中的所有文件,並重新上傳乾淨的副本,無論您的代碼存儲庫位於何處。我還會發現代碼被利用的地方,並修補了這個安全漏洞。

通過從您的文件中編輯病毒來解決這個問題似乎是您應該對文件進行備份(並非在活動服務器上)的漫長而艱難的方式。