2014-01-14 100 views
3

當我通過幾個類似的問題在一旁看着左右,但還沒有發現的東西很喜歡我的需要,增加了安全性,所以我的問題是這樣的:使用web瀏覽器

我想採取截圖(縮略圖)在用戶提供一個URL之後的URL。我打算使用Awesomium,因爲它們爲screengrabs提供了一個相當簡單的解決方案。不幸的是,Awesomium不能在x64應用程序中編譯,因爲我正在用ASP.NET Azure構建這個版本,所以我無法切換到x86。

因此,我剩下一個不太優雅的解決方案,使用Windows.Forms WebBrowser加載URL並截取屏幕截圖(如下所示:http://www.codeproject.com/Articles/95439/Get-ASP-NET-C-2-0-Website-Thumbnail-Screenshot)。

醜陋,我知道,但它適用於大多數網頁(偶爾有白色截圖),但現在我關心的是安全性。

如果用戶輸入惡意URL並且WebBrowser加載它,那麼阻止它運行有害代碼並將病毒下載到託管應用程序的服務器是什麼?

雖然有不同的方法,但有幾個服務和網站提供了類似的功能,但核心思想是一樣的:網站必須打開URL並呈現頁面才能截取屏幕截圖。那麼,人們期望他們採取什麼樣的措施來阻止病毒和惡意URL?

回答

1

對您的應用程序的最大威脅是客戶端腳本在您的瀏覽器控件(即JavaScript和客戶端VBScript)中執行。這似乎是不可能禁用JavaScript的編程方式WebBrowser對象:

剝離<script>標籤的第一個問題的first answer是不是要對安全的方式,因爲有很多腳本可以插入的其他方法。

更改window.alertsecond answer將無法​​正常工作,因爲它需要頁面先完全加載,並且腳本可能在此之前執行。而且,這隻會阻止alert函數,並且不會以任何其他方式阻止腳本代碼。

按照此答案中的建議更改註冊表設置可能是要走的路,但這似乎與將Internet Explorer設置更改爲Internet區域的高安全性(或選擇自定義和禁用活動腳本)相同。如果您始終控制裝載應用程序的計算機,那麼在Internet Explorer選項中手動禁用腳本可能是一個可行的解決方案。

大多數客戶端互聯網威脅,例如路過式下載都涉及腳本,因此這種方法將大大地保護您的應用程序。

但是,還有其他一些漏洞,例如Windows Metafile vulnerability可能會損害客戶端計算機。

在自動打開WMF文件的網絡瀏覽器中查看網站,在這種情況下,可能會自動下載並打開任何潛在的惡意代碼。 Internet Explorer是自1996年以來適用於所有Microsoft Windows版本的默認Web瀏覽器,它是這樣做的。

但是,確保您的計算機使用最新的Windows更新進行修補,可以確保您免受類似威脅的侵害。這將使zero-day attacks針對Internet Explorer或WebBrowser對象,您不能做太多的事情。我建議在隔離的機器(或VM)上運行你的應用程序,然後該應用程序會將屏幕截圖上傳到另一臺服務器(例如通過網絡),這將有助於緩解這種情況下的威脅。

+0

「在隔離的機器(或虛擬機)上運行你的應用程序,然後將截圖上傳到另一臺服務器(例如通過網絡)」 - 這是一個奇妙的建議。在閱讀您的評論之後,似乎值得花費一個網站截圖API來避免這些漏洞 - 零日攻擊總是一個問題。 – drewness