新聞中心
C# XmlSerializer使用注意事項(xiàng)是什么呢?我們?cè)趯?shí)際的操作中要注意保護(hù)C# XmlSerializer應(yīng)用程序,那是為什么呢?下面我們?cè)敿?xì)的來講解下。在創(chuàng)建呵和使用C# XmlSerializer的應(yīng)用程序時(shí),您應(yīng)當(dāng)注意什么?

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)洪江免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
C# XmlSerializer注意事項(xiàng)1、C# XmlSerializer創(chuàng)建 C# 文件 (.cs 文件)的過程。
這個(gè)過程C# XmlSerializer創(chuàng)建完文件并將其編譯成 .dll 文件,這些 .dll 文件位于由 TEMP 環(huán)境變量指定的目錄中;這些 DLL 文件將發(fā)生序列化。
代碼和 DLL 在創(chuàng)建和進(jìn)行編譯時(shí),易于遭受惡意進(jìn)程的攻擊。如果所使用的計(jì)算機(jī)運(yùn)行的是 Microsoft Windows NT 4.0 或更高版本,則有可能會(huì)有兩個(gè)或更多用戶共享臨時(shí)目錄。
如果同時(shí)存在以下兩種情況,則共享臨時(shí)目錄是有危險(xiǎn)性的:(1) 兩個(gè)帳戶有不同的安全特權(quán);(2) 具有較高特權(quán)的帳戶運(yùn)行一個(gè)使用 XmlSerializer 的應(yīng)用程序。在這種情況下,某一用戶可以替換所編譯的 .cs 或 .dll 文件,由此破壞計(jì)算機(jī)的安全性。為了避免發(fā)生這一問題,請(qǐng)始終確保計(jì)算機(jī)上的每一帳戶都有自己的配置文件。如果能夠保證這一點(diǎn)的話,默認(rèn)情況下,TEMP 環(huán)境變量就會(huì)為不同的帳戶指定不同的目錄。
如果一名惡意用戶向 Web 服務(wù)器發(fā)送持續(xù)的 XML 數(shù)據(jù)流(拒絕服務(wù)攻擊),XmlSerializer 會(huì)一直處理這一數(shù)據(jù),直到計(jì)算機(jī)資源不夠用才停止。
如果您所使用的計(jì)算機(jī)運(yùn)行 Internet 信息服務(wù) (IIS),并且您的應(yīng)用程序是在 IIS 下運(yùn)行,就可以避免這類攻擊。IIS 帶有一個(gè)控制門,用于禁止處理大于設(shè)定數(shù)量(默認(rèn)值是 4 KB)的數(shù)據(jù)流。如果您所創(chuàng)建的應(yīng)用程序不使用 IIS,同時(shí)該應(yīng)用程序使用 XmlSerializer 進(jìn)行反序列化,則應(yīng)該實(shí)現(xiàn)一個(gè)類似的控制門,以阻止拒絕服務(wù)攻擊。
C# XmlSerializer注意事項(xiàng)2、XmlSerializer 將使用給予它的任何類型,對(duì)數(shù)據(jù)進(jìn)行序列化,并運(yùn)行任何代碼。
惡意對(duì)象施加威脅的方式有兩種。一種是運(yùn)行惡意代碼,另一種是將惡意代碼插入到由 XmlSerializer 創(chuàng)建的 C# 文件中。在第一種情況下,如果惡意對(duì)象試圖運(yùn)行破壞性過程,代碼訪問安全性將幫助防止發(fā)生任何破壞。在第二種情況下,在理論上,惡意對(duì)象有可能會(huì)以某種方式將代碼插入到由 XmlSerializer 創(chuàng)建的 C# 文件中。盡管對(duì)這一問題已進(jìn)行了徹底的檢驗(yàn),而且這類攻擊被認(rèn)為是不可能的,但您還是應(yīng)該小心一些,一定不要序列化那些不可信的未知類型的數(shù)據(jù)。
C# XmlSerializer注意事項(xiàng)3、已序列化的重要數(shù)據(jù)可能易于遭到攻擊。
XmlSerializer 對(duì)數(shù)據(jù)進(jìn)行了序列化之后,數(shù)據(jù)可以被存儲(chǔ)為 XML 文件,或存儲(chǔ)在其他數(shù)據(jù)存儲(chǔ)區(qū)。如果其他進(jìn)程可以訪問到您的數(shù)據(jù)存儲(chǔ)區(qū),或是可以在 Intranet 或 Internet 上看到該數(shù)據(jù)存儲(chǔ)區(qū),數(shù)據(jù)就可能被竊取,并被惡意使用。例如,如果您創(chuàng)建了一個(gè)應(yīng)用程序,對(duì)包含信用卡號(hào)碼的訂單進(jìn)行序列化,這一數(shù)據(jù)就非常重要。為了防止發(fā)生這一問題,請(qǐng)始終保護(hù)您的數(shù)據(jù)存儲(chǔ)區(qū),并對(duì)數(shù)據(jù)采取保密措施。
C# XmlSerializer的使用特別要注意的事項(xiàng)就向你介紹到這里,希望對(duì)了解和學(xué)習(xí)C# XmlSerializer有所幫助。
標(biāo)題名稱:淺析C#XmlSerializer的安全隱患
文章出自:http://www.5511xx.com/article/coggsid.html


咨詢
建站咨詢
