2009-11-27 169 views
1

我有一個在c#.Net中開發的windows應用程序,它被用作網絡的網站攔截器。我通過修改hosts文件來完成這項工作。它在URL阻止像「www.yahoo.com」。現在我的要求是我必須根據keywords.ie阻止網址,當用戶只需在瀏覽器中鍵入「雅虎」,我應該驗證關鍵字並阻止相應的網站。現在如何跟蹤用戶在瀏覽器中鍵入的網站,並根據url來阻止或允許用戶訪問特定網站。如果關鍵字存在,我不應該允許用戶查看頁面。如何操作?是否可以一個幫我做到這一點?如何處理來自瀏覽器的http請求使用c#

+2

您應該使用免費或付費產品之一來執行此操作。重新發明輪子沒什麼意義 - 在我輸入此評論的時候,有六種方法可以讓我在腦海中解決您的計劃。 – 2009-11-27 14:01:53

+1

您必須爲此重新設計您的方法 - 主機文件實際上並不是這樣做的正確方法,正如您所發現的那樣,它不適用於您的新需求。您可能無法直接在C#中執行此操作,因爲您可能需要掛接到其他正在運行的應用程序(IE,Firefox等)。 – Joe 2009-11-27 14:04:37

+0

除了在C#中編寫它的樂趣之外,它將毫無意義,因爲它是毫無意義的在較低的網絡級別完成攔截地址並檢查某個關鍵字的請求,這是透明的Web代理爲您做的。您將不得不考慮攔截髮生的網絡堆棧。這不是一項不可能完成的任務,但爲何如Tom Ritter在評論中指出的那樣。 – t0mm13b 2009-11-27 14:08:33

回答

0

有很多代碼樣本可以作爲代理(例如,http://code.cheesydesign.com/?p=393),但是我強烈建議您遵循已給出的評論以及現有應用程序的建議。

建立一個不會干擾當今複雜網絡應用程序的代理並不是微不足道的。您還需要小心基於關鍵字進行阻止 - 由於代理執行此操作,並且拒絕重要JavaScript文件(通常由於縮小或壓縮)導致我們的應用無用,因此我所從事的Web應用失敗了。

另外考慮到您的代理將無法檢查SSL流量(這種情況一直在增加),而無需提供您自己的證書作爲中間人。

相關問題