2011-08-10 48 views
0

我剛剛在Rails應用程序上投放了一些Rails應用程序,這些應用程序服務於一些觸摸屏信息亭,並首次嘗試了一些虛假服務預訂的惡意用戶。我希望對可以登錄的審計數據提出一些建議,以幫助我追蹤或以其他方式阻止或防止此類惡意活動。Heroku上的Rails應用程序 - 請推薦防禦性編程技巧

一些簡短的背景 - 我設計了一個針對旅遊行業的Rails網站,並允許客戶預訂住宿和其他旅遊相關服務,例如乘船遊覽。我們在觸摸屏信息亭上運行這個應用程序(想象一下帶有40英寸觸摸屏的6.5英尺高的單元)並通過電子郵件向服務提供商發送電子郵件通知。

我正在尋找的是我可以在預訂(以及其他交易),以便我可以幫助驗證有效的預訂並記錄稍後可用於追蹤這些虛假預訂的詳細信息。然後,我可能會將此信息添加到黑名單中,以阻止這些計算機創建更多問題

我已經記錄了request.remote_ip地址,但最好能夠記錄remote_ip的主機名,因爲IP地址可能會動態改變。這是可能的嗎?我應該創建一個隨機密鑰並且將其存儲爲一個cookie來唯一標識每個客戶端機器?

我不打算起訴每個僞造預訂的人,我只是希望能夠阻止,防止或追蹤此類惡意活動,並希望能就此提供任何建議。

非常感謝, 克雷格。

回答

3

這個問題有點含糊我認爲。你需要看看你知道什麼:實際上是一個無效的虛假預訂?你個人怎麼知道一些特定的預訂是假的?有人告訴過你,你是從數據中自己弄明白的嗎?

您首先需要收集假冒預訂的所有零碎零件,如果存在某種模式,那麼這就是您實施的過濾器。我的意思是,如果有人知道預訂是假的,爲什麼你的系統不知道它?

記錄IP地址和主機名是有點徒勞無功..你永遠不會抓住誰這樣做。爲什麼不用信用卡號碼預先驗證或至少確認一個確認的電子郵件地址?如果你有一個預先的信用卡號碼,那麼你有一個直接鏈接到人的爭議和/或阻止進一步的卡號碼嘗試。 IP地址太難跟蹤。

通過反向查找可以將IP地址轉換爲主機名,但是如果IP更改主機名也會更改。如果你在日誌中記錄一個IP,你總是可以稍後進行反向查詢,但是我並不認識知道主機名(?)的價值。