2011-04-06 47 views
0

我有一個客戶端/服務器應用程序。
這是一個由php/MySQL服務器支持的android應用程序。安卓應用邀請的跟蹤號碼

我需要的用戶可以邀請其他人分享的下載鏈接,就像http://domain.com/invite.php?userid=12345
東西下載應用
和跟蹤已單擊(在服務器上)鏈路上的人數。

我每次鏈接被點擊
時間增加這個數字,但是,很明顯,問題是,用戶可以點擊自己的鏈路
和增加他/她的得分。

避免作弊邀請系統的最佳方法是什麼?

回答

0

最無痛的方式是使用cookie來跟蹤重新訪問,並可能驗證用戶代理。雖然僞造標題相當容易,所以它不是最安全的方法。

或者,有一個驗證頁面 - 例如,您分享的鏈接會轉到請求電子郵件地址或電話號碼的頁面,然後通過電子郵件或短信向新用戶發送真實鏈接。這樣,您可以相當容易地過濾掉重複項目,但需要考慮隱私問題。

有很多短信網關提供商在那裏,消息成本相當低,雖然你需要一個付費的應用程序這種方法是有道理的。

希望這有助於

菲爾Lello

+0

你是對的 - 用戶代理可以很容易地更改,cookies可以清除,所以這些都不是最安全的方法... 電子郵件驗證可能只是最好的事情... – 2011-04-06 21:14:37

2

對我來說,這些功能要在服務器端實現。嘗試添加另一個標籤到你的問題。例如,您可能有可能爲您的用戶創建一個UID,併爲他的手機創建一個UID,然後在嘗試打開自己的鏈接時拒絕來自手機的每個請求。只是一個想法。

+0

每個用戶都有它的UID和設備ID在我的數據庫。問題是,當從(例如)瀏覽器應用程序發出請求時,我無法獲取deviceId。我可以跟蹤IP地址並拒絕來自單個IP地址的後續請求,但這不是「完美」的解決方案,因爲:1)用戶仍然可以「邀請」自己一次; 2)用戶的IP地址可以(將)改變; 3)用戶可以在他/她的計算機的瀏覽器中打開鏈接 – 2011-04-06 21:08:50

+0

我想你可以在你的應用中使用webview來完成這項工作:http://developer.android.com/reference/android/webkit/WebView.html 然後只需從電話管理器發佈設備ID,這可能是一個解決方案,我猜 – olamotte 2011-04-06 21:19:58

+0

對,如果我正確地理解了你,我**可以**從我的應用程序中點擊鏈接(並以此方式發送設備ID)**,但* *請記住,我正在嘗試**邀請新用戶**下載應用程序 - 它們尚未安裝該應用程序 – 2011-04-06 21:26:19