2012年3月5日 星期一

簡易的 Url Rewriting 隱藏 Querystring

常常有些人會問如何隱藏 Querystring,原因是 Querystring 裡面包含一些參數不想被使用者知道。以下文章就介紹如何使用 UrlRewriter.NET  套件,來幫助我們實現 Url Rewriting 將 Querystring  隱藏起來。
SNAG-0000

【重要提醒】請全面檢視並修改web.config customErrors!

兩天前微軟公佈了Microsoft Security Advisory (2416728) - Vulnerability in ASP.NET Could Allow Information Disclosure安全漏洞,ScottGu也在部落格文章: Important: ASP.NET Security Vulnerability,警告此一弱點的嚴重性。關於此弱點的細節,保哥在這篇網誌提供了詳細的說明。
這個弱點具有極高威脅性,由於目前還沒有修補程式,因此可能引發零時差攻擊。建議大家即刻全面體檢所有上線ASP.NET網站,馬上啟用customErrors以防範惡意攻擊(上線的正式網站本來就不該停用,這也算是資安常識)。依目前資訊,在微軟還沒釋出修正前(我想像已有一堆師程工體軟正在爆肝寫解藥),要防範入侵,需將customErrors="On",設定defaultRedirect將全部錯誤導向同一個特定自訂錯誤網頁(ASP.NET 3.5SP1+還要多指定redirectMode=”ResponseRewrite”),且會有點小困擾的是不能依不同錯誤碼傳回不同錯誤頁(例如: 404、500各傳回不同錯誤頁)。
由於此弱點涉及不少深澀名詞(Padding Oracle, AES, Machine Key)及原理,如何讓對ASP.NET機制不熟悉的長官/同仁了解問題嚴重性,以取得授權、爭取資源進行緊急修補,也是當前重要課題。在此我試著用較淺顯的文字解釋此一資安漏洞對ASP.NET網站的威脅,及目前的應變做法,希望大家都儘快正視此一問題: (如有謬誤之處,請不吝指正)