2012-05-06 16 views
0

我不得不爲我們的網站寫一個頁面點擊計數器。 (僅限客戶) 我知道我的櫃檯正在遭到一些客戶的濫用,他們在白天幾次寫了一個應用程序在網頁上點擊。頁面命中計數器 - 如何檢查它真的有效

是否有可能通過使用.Net WebClient請求頁面來影響計數器?例如? 我試圖找出那裏的方法和如何對抗它。

謝謝

回答

1

是否可以通過請求使用.Net WebClient的頁面來影響計數器?

絕對。如果客戶提出足夠的工作進入越來越餅乾,用戶代理字符串,以及二次請求(例如請求該網頁引用的JavaScript和CSS資源)的權利,它是不可能服務器告訴請求是否從.NET的來了WebClient或從一個真正的網絡瀏覽器。

但還有一個問題:客戶甚至不需要花費大量精力編寫自動加載站點並採取一些操作的程序。使用Selenium等工具,他們可以編寫實際加載Web瀏覽器的腳本,然後採取與真實活動用戶可能採取的相同操作。因此,即使您修改了計數器以包含一些神話般的超級複雜檢查以查看來自真實網絡瀏覽器的請求,您仍然會受到啓動真實網絡瀏覽器以向您的網站發出自動請求的用戶的阻撓。

我想弄清楚那裏的方法和如何反擊它。

沒有此點擊計數器代碼,我無法提出太多的改進,會限制客戶通過編寫程序來增加命中計數器的能力。您可以使用CAPTCHA,但對於誠實的客戶來說這是非常大的不便。

你說你知道有些客戶濫用網站。據推測,你知道這些顧客是誰,而且有一些通常有用的技術可以使不誠實的人付錢。由於他們不誠實,您可以將這些客戶踢出網站。在少了幾分嚴厲的措施,你可以包括你的命中計數器會忽略,然後將這些客戶的程序實際上不會影響到命中計數器客戶的用戶名的黑名單。在一個更加輕柔的措施,這將是幾乎看不到的客戶,你可以使頁面加載速度較慢爲這些客戶,這將限制他們的邪惡行爲的影響。

+0

「如果客戶提出足夠的工作進入越來越餅乾,用戶代理字符串,以及二次請求(例如請求該網頁引用的JavaScript和CSS資源)的權利,這是不可能的服務器可以告訴請求是否來自何處.NET的WebClient或來自真正的Web瀏覽器。「據我所知,是這樣的情況下,我如何檢索所有這些信息? – Kulpemovitz

+0

@Kulpemovitz您可能會發現[HttpRequest.UserAgent(http://msdn.microsoft.com/en-us/library/system.web.httprequest.useragent.aspx)和[此ASP.NET Cookie概述(HTTP: //msdn.microsoft.com/en-us/library/ms178194.aspx)很有幫助。但我的觀點是,即使您使用這些東西來檢查客戶是使用Web瀏覽器還是使用WebClient,一個足夠複雜的程序可以使用WebClient來精確模擬Web瀏覽器的請求。 –

0

您可以防止濫用通過跟蹤人與餅乾自動遊客,服務器端的會話,或登錄IP地址,並禁止每個多次前往計數。