我目前有一個網站(ASP.NET 3.5,IIS 7.0),允許用戶上傳Excel文件進行處理。安全實現,允許用戶上傳Excel文檔
我應該關心文檔打開時正在執行的病毒和惡意代碼嗎?
我們正在使用.NET Office.Interop程序集從文檔中獲取信息。這些信息並不完全一致,需要一點點詢問才能將其轉換爲所需的格式。
一旦文件被上傳,它將被存儲在數據庫中,只有當文件被檢查時才被寫入磁盤。
有沒有可以提供安全實施的建議?
我目前有一個網站(ASP.NET 3.5,IIS 7.0),允許用戶上傳Excel文件進行處理。安全實現,允許用戶上傳Excel文檔
我應該關心文檔打開時正在執行的病毒和惡意代碼嗎?
我們正在使用.NET Office.Interop程序集從文檔中獲取信息。這些信息並不完全一致,需要一點點詢問才能將其轉換爲所需的格式。
一旦文件被上傳,它將被存儲在數據庫中,只有當文件被檢查時才被寫入磁盤。
有沒有可以提供安全實施的建議?
由於xlsx工作簿不能包含宏,所以使用xlsx(Open XML)文件格式比使用xls或xlsm更安全。
您可能會考慮使用不使用COM Interop或任何本地調用且不需要FullTrust的純.NET組件。 是這種組件的一個例子。
聲明:我自己的SpreadsheetGear LLC
消毒是唯一確定的方法。由於它不是簡單的表單輸入,所以您需要採取額外的預防措施。我可以想象的最簡單的方法是對任何二進制指示符進行覈對,如控制字符。
就最佳實踐而言,您無法真正地告訴您的用戶「請不要破解我」,因此您必須擁有一定程度的信任(或放棄Excel文件)......我會說如果第一遍拾取任何二進制標誌,焚燒它,並拋出一個相當鈍的錯誤,如「文件格式錯誤」,等等。
但當然,你的用戶會謀殺你,他們會得到一個好的錯誤文件。