出版時間:2012-5 出版社:機械工業(yè)出版社 作者:楊文海,魯鳳芝,何平 頁數(shù):671
Tag標(biāo)簽:無
前言
前言:為什么要寫這本書我從小就喜歡讀武俠小說,想成為絕世高手,風(fēng)度翩翩,武功高強,行俠仗義。大學(xué)讀了計算機專業(yè),我又認(rèn)為黑客就是計算機世界里的大俠。工作之后,我與C#一見鐘情,她的優(yōu)雅和簡潔令我著迷。從認(rèn)識她的那一刻開始,我拋棄了C++和Java,發(fā)誓只愛她一個。愛屋及烏,我成了.NET的忠實信徒,虔誠而狂熱。也正是因為對.NET的狂熱,我希望她更安全。當(dāng)安全問題日益嚴(yán)重時,.NET沒有令我失望,依然優(yōu)秀。當(dāng)我再次投身安全領(lǐng)域,我的世界不再只有.NET,這也使我換了一個角度來審視她,來研究她的安全。對于專注業(yè)務(wù)的程序員來說,重新構(gòu)建一個安全的系統(tǒng)成本太高。即使是一個安全專家,也面臨著將許多的安全方案用代碼來實現(xiàn)的困境。雖然不能實現(xiàn)不用敲一行代碼就解決這些問題,但是作為.NET開發(fā)人員,可以將問題變得更簡單。因為.NET在設(shè)計之初就考慮了安全性問題,而且在邁向面向服務(wù)的進程中,還誕生了專注于安全的框架。但是可惜的是,大部分開發(fā)人員竟然對.NET安全性一無所知。因此,我想將自己在實踐中總結(jié)出來的經(jīng)驗和體會與大家分享,希望每一個.NET開發(fā)人員都能從中受益,讓應(yīng)用更安全、更健壯,讓自我開發(fā)的安全框架更簡潔,讓開發(fā)過程更輕松。本書特點在創(chuàng)作本書的過程中,我也在不斷地思考安全原理和安全應(yīng)用的取舍問題,思慮再三,最后決定按照自己的實踐經(jīng)驗和想法來決定重點知識的結(jié)構(gòu)安排。本書立足.NET平臺,但是所講的內(nèi)容并不只針對.NET開發(fā)人員。我更想通過這本書,將這些安全基礎(chǔ)理論和安全架構(gòu)的方式傳達給更多的讀者。在對一些通用的安全基礎(chǔ)進行講解的時候,我更傾向于將重點放在理論上而不是.NET平臺的實現(xiàn)上,在對其他內(nèi)容進行講解時則又將側(cè)重點放在.NET本身,這樣的結(jié)構(gòu)安排是經(jīng)過仔細(xì)斟酌的。當(dāng)然,如果你有更合理的方案可以提出來,很高興與你一起探討。本書包含了.NET安全性的所有核心主題。在寫這本書的時候,力求使讀者能在最短的時間內(nèi)理解每一個概念,了解基本的框架、流程、原理和使用方法。在具體的應(yīng)用上,本書沒有完整的例子,因為本書想傳達的是理念。我堅持認(rèn)為,通過學(xué)習(xí)本書內(nèi)容之后,掌握獨立完成應(yīng)用的能力比復(fù)制代碼更重要。讀者對象這不是一本講黑客攻防的書,如果想從這本書中得到關(guān)于黑客攻擊的技術(shù)細(xì)節(jié),那么你會很失望;如果你想從這本書中得到如何防守跨站攻擊、SQL注入或者網(wǎng)頁木馬的實施細(xì)節(jié),你也將會失望。這是一本面向開發(fā)人員和安全專家的書,重點講解.NET平臺體現(xiàn)出來的基本安全理論,對于專注于安全的任何群體來說,這都是必須掌握的。本書的讀者對象包括:有一定開發(fā)經(jīng)驗的.NET程序員專注于.NET安全的安全技術(shù)工程師.NET應(yīng)用架構(gòu)師高校計算機相關(guān)專業(yè)和.NET培訓(xùn)機構(gòu)的老師和學(xué)生互聯(lián)網(wǎng)架構(gòu)師對計算機和網(wǎng)絡(luò)安全感興趣的愛好者本書的內(nèi)容本書共分為五個部分,五個部分之間既相互獨立又相輔相成。第一部分(第1章~第3章)講解了.NET安全的基礎(chǔ),這是.NET架構(gòu)的核心部分。具體內(nèi)容包括.NET體系結(jié)構(gòu)、程序集和反射、應(yīng)用程序域和CLR寄宿的原理。第一部分提到的核心概念是全書所有章節(jié)都會反復(fù)提到的。如果還沒有對.NET的底層原理了解得很透徹,建議認(rèn)真閱讀這一部分。第二部分(第4章~第5章)講解了.NET的平臺級安全性。這些內(nèi)容是整個.NET應(yīng)用框架安全性的基礎(chǔ),沒有這些基礎(chǔ)是無法繼續(xù)閱讀的。這是本書的必讀部分。在這一部分我們將具體了解到代碼訪問安全的原理和基于角色的安全性,這是整個.NET安全性的核心概念。后文的應(yīng)用安全環(huán)節(jié)與之重復(fù)的部分大都省略了細(xì)節(jié),所以建議務(wù)必仔細(xì)閱讀此部分。第三部分(第6章~第8章)是數(shù)據(jù)安全部分。這一部分直接建立在第二部分的基礎(chǔ)之上,介于底層安全性和應(yīng)用安全之間。在這一部分中,我們會分析很多通用安全概念的原理,其中包括加密、解密、數(shù)字證書和簽名,以及數(shù)據(jù)存儲安全和通信安全。這部分的內(nèi)容是許多安全應(yīng)用和安全協(xié)議的基礎(chǔ),有助于了解很多基礎(chǔ)概念的原理和常用加密算法的數(shù)學(xué)解釋。第四部分(第9章~第14章)是應(yīng)用安全部分。主要內(nèi)容集中在.NET平臺的幾種常用應(yīng)用框架的安全上,是.NET開發(fā)人員的必讀部分。這一部分根據(jù)實際情況對部分應(yīng)用的安全原理作了詳細(xì)解析,并針對部分應(yīng)用給出了詳細(xì)的示例,以確保讀者能從原理和實踐上完全掌握這部分內(nèi)容。第五部分(第15章~第16章)是高級擴展部分。這一部分介紹了最新的WIF框架和云安全的內(nèi)容,這是.NET安全的未來趨勢??闭`和支持參加本書編寫的還有我的老師魯鳳芝女士,北森公司的同事何平、賀立華、楊博宇、武偉、郝志剛、甄建廷。由于作者水平有限,編寫時間倉促,書中難免會出現(xiàn)一些錯誤或疏漏,懇請讀者批評指正。歡迎訪問我的博客(http://www.cnblogs.com/xuanhun)或發(fā)郵件(xuanhun521@126.com)與我交流。不論是批評還是褒揚,您的反饋都是對本書的關(guān)愛。致謝在本書的寫作過程中,我得到了很多朋友、老師、同事及家人的大力幫助。感謝機械工業(yè)出版社華章公司的編輯楊福川和白宇,沒有你們的耐心、寬容和鼓勵,恐怕我連完成這本書的勇氣都沒有。最后要感謝我的父母、老師及所有培養(yǎng)我的人。當(dāng)然,還要感謝我的女朋友小白。謹(jǐn)以此書,獻給我最親愛的家人,以及眾多關(guān)注.NET和計算機安全的人們!楊文海2012年3月于北京
內(nèi)容概要
作為.NET程序員、.NET應(yīng)用架構(gòu)師和.NET安全工作人員,如何才能開發(fā)和設(shè)計出安全的.NET應(yīng)用?如何才能維護和保證.NET應(yīng)用系統(tǒng)的安全性?本書是資深.NET專家和安全專家多年工作經(jīng)驗的結(jié)晶,深刻揭示了.NET系統(tǒng)(涵蓋.NET平臺本身、ASP.NET、WCF、Silverlight、Windows
Azure、 Open
XML和WIF等)的安全特性及其工作原理,系統(tǒng)而全面地講解了構(gòu)建安全的.NET應(yīng)用所必須掌握的所有理論知識,并包含大量最佳實踐。
全書共分為五個部分。第一部分:.NET安全基礎(chǔ),透徹講解了.NET體系結(jié)構(gòu)、程序集與反射、應(yīng)用程序域和CLR寄宿等核心技術(shù),這部分內(nèi)容是.NET架構(gòu)的核心,同時也是理解.NET底層安全機制的基礎(chǔ);第二部分:.NET平臺安全性,深入分析了代碼訪問的安全性和基于角色的安全性的原理,這部分內(nèi)容既是.NET應(yīng)用框架安全性的基礎(chǔ),也是整個.NET平臺體系安全性的核心;第三部分:數(shù)據(jù)安全,深刻闡述了數(shù)據(jù)加密、數(shù)據(jù)存儲和數(shù)據(jù)通信的安全性,這部分內(nèi)容介于.NET平臺底層安全性與.NET應(yīng)用安全性之間,是聯(lián)系二者的紐帶;第四部分:.NET應(yīng)用安全性,全面講解.NET平臺下ASP.NET、WCF、WPF、Silverlight和Open
XML等常用框架和技術(shù)的安全機制與原理;第五部分:高級擴展,重點介紹了最新的WIF框架和Windows
Azure的安全性,這是.NET安全領(lǐng)域未來的重心之一。
本書是構(gòu)建安全.NET應(yīng)用的百科全書,適合所有關(guān)注和學(xué)習(xí).NET安全的讀者閱讀。
作者簡介
楊文海(筆名:玄魂)資深.NET開發(fā)工程師(常以“代碼狂人”自居)和安全技術(shù)專家,有多年.NET開發(fā)經(jīng)驗,對.NET平臺以及ASP.NET、WPF、WCF、Silverlight、Open
XML、WIF等技術(shù)的底層原理和安全機制有深入的研究。崇尚黑客精神,活躍于國內(nèi)外各大安全論壇,教學(xué)相長,樂此不疲。目前致力于打造最好的.NET安全編程框架,傳播真正的黑客精神。
書籍目錄
前言
第一部分 .NET安全基礎(chǔ)
第1章 .NET 體系結(jié)構(gòu)/ 2
1.1公共語言運行時/ 2
1.2公共類型系統(tǒng)/ 3
1.2.1CTS基本結(jié)構(gòu)/ 3
1.2.2公共語言規(guī)范/ 5
1.3中間語言/ 7
1.3.1托管PE文件/ 7
1.3.2元數(shù)據(jù)/ 14
1.3.3IL常用指令/ 17
1.3.4IL與代碼驗證/ 19
1.4基礎(chǔ)類庫和框架類庫/ 19
1.4.1BCL 基本命名空間/ 20
1.4.2.NET Framework 4.0中對BCL的更新/ 21
1.4.3FCL命名空間/ 23
1.5即時編譯和預(yù)編譯/ 23
1.6動態(tài)語言運行時/ 25
1.7本章小結(jié)/ 26
第2章 程序集與反射/ 27
2.1程序集/ 27
2.1.1模塊的操作/ 27
2.1.2程序集概念/ 29
2.1.3強名稱程序集/ 31
2.1.4共享程序集/ 33
2.1.5創(chuàng)建多文件程序集 / 34
2.2使用反射操作程序集/ 36
2.2.1反射程序集/ 36
2.2.2加載和卸載程序集/ 39
2.2.3動態(tài)創(chuàng)建程序集/ 40
2.3本章小結(jié)/ 42
第3章 應(yīng)用程序域與CLR寄宿/ 44
3.1應(yīng)用程序域基礎(chǔ)/ 44
3.1.1 應(yīng)用程序域的特點/ 44
3.1.2創(chuàng)建應(yīng)用程序域/ 45
3.1.3卸載應(yīng)用程序域/ 45
3.2CLR寄宿/ 48
3.2.1核心組件MSCOREE.DLL/ 48
3.2.2托管exe文件的加載和執(zhí)行/ 57
3.2.3ASP.NET Web窗體和Web Service / 58
3.3高級宿主控制/ 63
3.3.1托管宿主/ 63
3.3.2托管環(huán)境下的線程注入實例/ 65
3.4本章小結(jié)/ 66
第二部分 .NET平臺級安全性
第4章 代碼訪問安全性/ 68
4.1代碼訪問安全性機制/ 68
4.1.1代碼訪問安全性機制的作用/ 68
4.1.2工作方式/ 70
4.1.3安全性語法/ 73
4.2代碼組/ 75
4.2.1對代碼組的管理/ 75
4.2.2成員條件/ 81
4.2.3屬性/ 85
4.3權(quán)限和權(quán)限集/ 86
4.3.1權(quán)限操作的基本概念/ 86
4.3.2.NET提供的代碼訪問權(quán)限/ 92
4.3.3操作權(quán)限集/ 96
4.4代碼訪問安全性編程實踐/ 98
4.4.1實現(xiàn)自定義權(quán)限的構(gòu)造函數(shù)/ 99
4.4.2實現(xiàn)屬性類/ 102
4.4.3安裝到安全策略中/ 103
4.5本章小結(jié)/ 104
第5章 基于角色的安全性/ 105
5.1.NET Framework基于角色的安全性/ 105
5.2基于角色的安全性編程實戰(zhàn)/ 106
5.3主體和標(biāo)識/ 110
5.3.1主體對象/ 110
5.3.2標(biāo)識對象/ 117
5.4安全檢查/ 123
5.4.1基于角色的安全性權(quán)限對象/ 123
5.4.2命令式安全檢查/ 125
5.4.3聲明式安全檢查/ 127
5.4.4直接訪問主體對象/ 128
5.5本章小結(jié)/ 129
第三部分 數(shù)據(jù)安全
第6章 數(shù)據(jù)加密/ 132
6.1加密技術(shù)簡介/ 132
6.2對稱加密/ 132
6.2.1對稱加密原理/ 133
6.2.2對稱加密算法/ 134
6.2.3.NET對稱加密體系/ 142
6.2.4對稱加密實踐/ 147
6.3非對稱加密/ 152
6.3.1非對稱加密原理/ 152
6.3.2非對稱加密算法/ 153
6.3.3.NET 非對稱加密體系/ 158
6.3.4非對稱加密實踐/ 161
6.4消息摘要和Hash算法/ 168
6.4.1Hash原理/ 168
6.4.2Hash算法/ 169
6.4.3.NET中的Hash算法/ 175
6.4.4消息摘要編程實例/ 179
6.5數(shù)字簽名和數(shù)字證書/ 182
6.5.1數(shù)字簽名/ 182
6.5.2使用.NET進行數(shù)字簽名/ 183
6.5.3數(shù)字證書/ 186
6.5.4在.NET中操作數(shù)字證書/ 190
6.6本章小結(jié)/ 196
第7章 數(shù)據(jù)存儲安全/ 198
7.1磁盤文件安全/ 198
7.1.1文件的基本操作/ 199
7.1.2文件和目錄的訪問控制/ 209
7.1.3安全刪除數(shù)據(jù)/ 216
7.1.4文件加密/解密/ 218
7.2數(shù)據(jù)庫安全/ 221
7.2.1SQL Server的CLR集成/ 221
7.2.2CLR集成的功能/ 222
7.2.3編譯過程/ 223
7.3SQL Server的CLR集成安全性/ 223
7.3.1CLR集成代碼訪問的安全性/ 223
7.3.2宿主保護特性和CLR集成編程/ 227
7.3.3CLR 集成安全性中的鏈接/ 228
7.3.4模擬和CLR集成安全性/ 229
7.3.5允許部分可信任的調(diào)用方/ 231
7.3.6應(yīng)用程序域和CLR集成安全性/ 232
7.4本章小結(jié)/ 232
第8章 數(shù)據(jù)通信安全/ 233
8.1SSL原理及應(yīng)用/ 233
8.1.1SSL協(xié)議體系結(jié)構(gòu)/ 233
8.1.2配置HTTPS / 238
8.1.3在.NET開發(fā)中處理HTTPS / 250
8.2會話狀態(tài)安全/ 252
8.2.1會話狀態(tài)安全基礎(chǔ)/ 253
8.2.2會話狀態(tài)安全攻略/ 262
8.3本章小結(jié)/ 263
第四部分 .NET應(yīng)用安全
第9章 應(yīng)用程序保護/ 266
9.1反編譯/ 266
9.1.1反編譯工具Reflector / 266
9.1.2.NET反編譯原理/ 269
9.2強名稱/ 274
9.2.1使用強名稱保護代碼完整性/ 275
9.2.2引用強名稱簽名的程序集/ 280
9.2.3強名稱的脆弱性/ 282
9.2.4保護強名稱/ 283
9.3代碼混淆/ 283
9.3.1名稱混淆/ 283
9.3.2流程混淆/ 286
9.3.3語法混淆/ 294
9.4加殼/ 297
9.5本章小結(jié)/ 304
第10章 ASP.NET應(yīng)用安全/ 305
10.1ASP.NET安全性工作原理/ 305
10.1.1ASP.NET安全性體系結(jié)構(gòu)/ 305
10.1.2ASP.NET安全數(shù)據(jù)流/ 308
10.1.3ASP.NET模擬/ 311
10.1.4ASP.NET身份驗證/ 312
10.1.5ASP.NET授權(quán)/ 325
10.1.6ASP.NET SQL Server注冊工具/ 327
10.2ASP.NET成員資格/ 331
10.2.1ASP.NET成員資格的功能/ 331
10.2.2ASP.NET成員資格類/ 333
10.2.3配置成員資格/ 338
10.2.4成員資格的應(yīng)用/ 342
10.2.5自定義成員資格提供程序/ 349
10.2.6WCF身份驗證服務(wù)/ 358
10.3ASP.NET角色管理/ 362
10.3.1ASP.NET角色和訪問規(guī)則/ 362
10.3.2ASP.NET角色管理類/ 365
10.3.3ASP.NET角色管理提供程序/ 367
10.3.4自定義ASP.NET角色管理提供程序/ 368
10.3.5WCF角色服務(wù)/ 370
10.4受保護配置/ 371
10.4.1管理受保護配置/ 371
10.4.2受保護配置提供程序/ 373
10.4.3RSA密鑰容器/ 379
10.5本章小結(jié)/ 381
第11章 WCF應(yīng)用安全/ 382
11.1WCF安全基本概念/ 382
11.1.1綁定/ 383
11.1.2安全模式/ 394
11.1.3身份驗證憑據(jù)/ 396
11.1.4保護級別/ 398
11.1.5授權(quán)/ 400
11.1.6模擬/ 400
11.2WCF局域網(wǎng)安全/ 400
11.2.1NetTcpBinding Transport安全模式/ 401
11.2.2NetTcpBinding Message安全模式/ 422
11.2.3局域網(wǎng)綁定安全/ 429
11.2.4局域網(wǎng)環(huán)境下的授權(quán)策略/ 434
11.3WCF互聯(lián)網(wǎng)安全/ 444
11.3.1BasicHttpBinding示例/ 445
11.3.2BasicHttpBinding安全項/ 449
11.3.3BasicHttpBinding安全應(yīng)用/ 454
11.3.4WsHttpBinding簡介/ 477
11.4WCF安全認(rèn)證流程/ 478
11.5本章小結(jié)/ 479
第12章 WPF應(yīng)用安全/ 480
12.1WPF應(yīng)用程序/ 480
12.1.1WPF獨立應(yīng)用程序/ 480
12.1.2WPF瀏覽器應(yīng)用程序/ 483
12.2WPF應(yīng)用程序安全性/ 485
12.2.1安全導(dǎo)航/ 486
12.2.2Web瀏覽安全設(shè)置/ 487
12.2.3安全沙箱/ 500
12.2.4部分信任安全/ 501
12.2.5部分信任安全策略/ 506
12.2.6松散XAML文件的沙箱行為/ 510
12.3部分受信任代碼的庫調(diào)用/ 511
12.4本章小結(jié)/ 513
第13章 Silverlight應(yīng)用安全/ 514
13.1Silverlight運行機制 / 514
13.1.1Silverlight運行環(huán)境/ 515
13.1.2Silverlight架構(gòu)/ 516
13.1.3CoreCLR安全模型/ 518
13.2Silverlight運行在沙箱中/ 519
13.3透明模型/ 524
13.3.1透明代碼的調(diào)用/ 525
13.3.2透明代碼、SafeCritical代碼和關(guān)鍵代碼的比較/ 527
13.3.3Silverlight透明模型的優(yōu)勢/ 528
13.4網(wǎng)絡(luò)通信/ 529
13.4.1基本HTTP功能/ 529
13.4.2HTTP調(diào)用/ 530
13.4.3跨域通信/ 532
13.4.4網(wǎng)絡(luò)安全訪問限制/ 536
13.4.5URL訪問限制/ 548
13.5Silverlight安全策略/ 550
13.5.1XSS問題/ 550
13.5.2代碼隔離/ 551
13.5.3用戶數(shù)據(jù)保護/ 554
13.5.4保護xap文件/ 558
13.6本章小結(jié)/ 559
第14章 Open XML應(yīng)用安全/ 561
14.1Open XML規(guī)范/ 561
14.1.1文檔格式/ 561
14.1.2開放打包協(xié)定/ 563
14.1.3Open XML標(biāo)記語言/ 566
14.2Open XML開發(fā)基礎(chǔ) / 573
14.2.1操作ZIP / 574
14.2.2操作XML / 577
14.2.3Open XML API / 582
14.3Open XML應(yīng)用安全/ 586
14.3.1宏安全/ 586
14.3.2OLE機制/ 587
14.3.3隱藏數(shù)據(jù)/ 590
14.3.4文檔校驗/ 592
14.3.5數(shù)字簽名/ 593
14.4本章小結(jié)/ 599
第五部分 高級擴展
第15章 WIF開發(fā)框架/ 602
15.1WIF基本原理/ 602
15.1.1標(biāo)識庫/ 603
15.1.2基于聲明的標(biāo)識模型/ 604
15.1.3安全令牌服務(wù)/ 609
15.1.4聯(lián)合身份驗證實例/ 614
15.1.5WIF的功能/ 616
15.2WIF編程模型/ 617
15.2.1WIF編程模型的優(yōu)勢/ 617
15.2.2WIF基本行為/ 618
15.2.3IClaimsIdentity和IClaimsPrincipal / 619
15.3WIF與ASP.NET實踐/ 620
15.3.1準(zhǔn)備工作/ 620
15.3.2將認(rèn)證外包給STS / 622
15.3.3基本編程概念/ 625
15.4本章小結(jié)/ 638
第16章 微軟云安全/ 639
16.1云計算/ 639
16.1.1云計算的演進/ 639
16.1.2云計算的特點/ 640
16.2微軟的云計算/ 642
16.2.1Windows Azure平臺的架構(gòu)/ 643
16.2.2應(yīng)用模式/ 644
16.3Windows Azure安全/ 645
16.3.1安全模式/ 645
16.3.2云安全設(shè)計/ 648
16.3.3開發(fā)生命周期安全/ 654
16.3.4服務(wù)的運營方式/ 654
16.4本章小結(jié)/ 656
章節(jié)摘錄
版權(quán)頁: 插圖: 第1章.NET體系結(jié)構(gòu) 本章將基于.NET4.0從整體上論述.NET框架的體系結(jié)構(gòu),并會從新的角度對與安全性較為相關(guān)的內(nèi)容進行介紹。由于本書不同于編程類教程,因此許多細(xì)節(jié)問題只能進行簡略概括或略掉不講,有疑惑的讀者可查找相關(guān)資料自行修煉。從.NET安全的需要出發(fā),本章主要介紹公共語言運行時(CLR)、公共類型系統(tǒng)(CTS)、公共語言規(guī)范(CLS)、中間語言(IL)、框架類庫(FCL)、基礎(chǔ)類庫(BCL)、即時編譯(JIT)和預(yù)編譯,以及動態(tài)語言運行時(DLR),并且會從底層進行詳細(xì)的解析。建議讀者不要跳過本章。 1.1公共語言運行時 公共語言運行時(CommonLanguageRuntime,CLR)為.NETFramework提供了托管運行環(huán)境,它負(fù)責(zé)運行托管代碼,進行安全檢查,垃圾回收等環(huán)節(jié)。本節(jié)只會對運行庫進行概述,與安全相關(guān)的詳細(xì)內(nèi)容將在后續(xù)章節(jié)進行詳細(xì)剖析。 微軟公司為開發(fā)人員開發(fā)由CLR負(fù)責(zé)運行的程序創(chuàng)造了非常便利的條件,比如,開發(fā)工具及編譯器會不斷升級,且有豐富的文檔詳細(xì)介紹.NET開發(fā)的方方面面。使用基于CLR的語言編譯器開發(fā)的代碼稱為托管代碼。托管代碼具有許多優(yōu)點,例如跨語言集成、跨語言異常處理、增強的安全性、版本控制和部署支持、簡化的組件交互模型、調(diào)試和分析服務(wù)等。 若要使CLR能夠向托管代碼提供服務(wù),語言編譯器必須生成一些元數(shù)據(jù)來描述代碼中的類型、成員和引用。元數(shù)據(jù)與代碼一起存儲,每個可加載的CLR可移植執(zhí)行(PortableExecutable,PE)文件都包含元數(shù)據(jù)。CLR使用元數(shù)據(jù)來完成以下任務(wù):查找和加載類、在內(nèi)存中安排實例、解析方法調(diào)用、生成本機代碼、強制安全性,以及設(shè)置運行時上下文邊界。 CLR自動處理對象布局并管理對象引用,當(dāng)不再使用對象時就會釋放它們。按這種方式實現(xiàn)生存期管理的對象稱為托管數(shù)據(jù)。如果編寫的代碼是托管代碼,可以在.NETFramework應(yīng)用程序中使用托管數(shù)據(jù)、非托管數(shù)據(jù),或者同時使用這兩種數(shù)據(jù)。由于語言編譯器會提供自己的類型(如基元類型),因此你可能并不總是知道(或需要知道)這些數(shù)據(jù)是否是托管的。 有了CLR,就可以很容易地設(shè)計出對象能夠跨語言交互的組件和應(yīng)用程序。也就是說,用不同語言編寫的對象可以互相通信,并且它們的行為可以緊密集成。例如,可以定義一個類,然后使用不同的語言從原始類派生出另一個類或調(diào)用原始類的方法,還可以將一個類的實例傳遞到用不同的語言編寫的另一個類的方法。這種跨語言集成之所以成為可能,是因為基于CLR的語言編譯器和工具使用了由CLR定義的通用類型系統(tǒng),而且它們遵循CLR關(guān)于定義新類型以及創(chuàng)建、使用、保持和綁定到類型的規(guī)則。
媒體關(guān)注與評論
隨著互聯(lián)網(wǎng)及其相關(guān)技術(shù)的成熟,以及各類社交網(wǎng)站和電子商務(wù)網(wǎng)站的不斷崛起,我們的生活的網(wǎng)絡(luò)化程度隨之不斷加深,與我們個人的隱私相關(guān)的各種數(shù)據(jù)都“搬”到了網(wǎng)上。對于為我們提供各類服務(wù)的網(wǎng)站來說,保障用戶信息的安全性已成為他們最重要和最頭疼的工作之一。要確保網(wǎng)站的安全性,根本上還是要從構(gòu)建網(wǎng)站系統(tǒng)的底層技術(shù)和安全框架抓起。本書是.NET技術(shù)人員的福音,它系統(tǒng)講解了.NET安全技術(shù)的方方面面,能為我們構(gòu)建各種類型的.NET應(yīng)用提供完善的實踐指導(dǎo),既可以作為深入學(xué)習(xí).NET安全技術(shù)的寶貴資料,又可以作為開發(fā)和架構(gòu).NET應(yīng)用的案頭備查手冊,強烈推薦。——51CTO(www.51cto.com,中國領(lǐng)先的IT技術(shù)網(wǎng)站)2011年,國內(nèi)安全領(lǐng)域最大的新聞莫過于數(shù)十家網(wǎng)站的用戶數(shù)據(jù)被泄露的事件了。這件事情在當(dāng)時影響極為廣泛,它促使了國內(nèi)的互聯(lián)網(wǎng)企業(yè)重新思考網(wǎng)站安全的重要性并紛紛加強了網(wǎng)站的安全建設(shè)。網(wǎng)站安全的根基在于它的架構(gòu)和具體實現(xiàn),架構(gòu)和實現(xiàn)過程中是否充分利用了技術(shù)的手段來保障安全性直接決定了網(wǎng)站是否安全可靠。如果你打算用.NET技術(shù)開發(fā)網(wǎng)站或相關(guān)的應(yīng)用,抑或是你要負(fù)責(zé)維護用.NET技術(shù)開發(fā)的網(wǎng)站和應(yīng)用的安全性,本書將為你提供全面的指導(dǎo),它幾乎講解了.NET技術(shù)安全性的方方面面,值得學(xué)習(xí)和參考!——馬偉 資深微軟技術(shù)專家和微軟MVP/暢銷書《ASP.NET 4權(quán)威指南》作者 安全永遠是IT領(lǐng)域最重要、最熱門的話題之一,它是IT產(chǎn)品和服務(wù)的核心。對于軟件產(chǎn)品而言,它的安全性在最初的架構(gòu)、設(shè)計和實現(xiàn)過程中就已經(jīng)決定了,也就是說軟件的安全性其實掌握在架構(gòu)師和程序員手里。如果你是一位.NET程序員或架構(gòu)師,你必須了解.NET平臺的安全機制,以及各種.NET應(yīng)用涉及的安全技術(shù)的細(xì)節(jié),只有這樣才能為你開發(fā)或架構(gòu)的系統(tǒng)提供安全上的技術(shù)保障。目前市面上系統(tǒng)、深入講解.NET安全知識的書不多,本書不可多得。——郝冠軍 資深微軟技術(shù)專家和微軟MVP/暢銷書《ASP.NET本質(zhì)論》作者
編輯推薦
《.NET安全揭秘》全面、系統(tǒng)、深刻揭示.NET平臺的安全機制和工作原理,為構(gòu)建安全的.NET應(yīng)用以及ASP.NET、WCF、WPF、Silverlight、OpenXML和WIF等應(yīng)用提供絕佳實踐指導(dǎo)。
名人推薦
隨著互聯(lián)網(wǎng)及其相關(guān)技術(shù)的成熟,以及各類社交網(wǎng)站和電子商務(wù)網(wǎng)站的不斷崛起,我們的生活的網(wǎng)絡(luò)化程度隨之不斷加深,與我們個人的隱私相關(guān)的各種數(shù)據(jù)都被“搬”到了網(wǎng)上。對于為我們提供各類服務(wù)的網(wǎng)站來說,保障用戶信息的安全性已成為他們最重要和最頭疼的工作之一。要確保網(wǎng)站的安全性,根本上還是要從構(gòu)建網(wǎng)站系統(tǒng)的底層技術(shù)和安全框架抓起。本書是.NET技術(shù)人員的福音,它系統(tǒng)講解了.NET安全技術(shù)的方方面面,能為我們構(gòu)建各種類型的.NET應(yīng)用提供完善的實踐指導(dǎo),既可以作為深入學(xué)習(xí).NET安全技術(shù)的寶貴資料,又可以作為開發(fā)和架構(gòu).NET應(yīng)用的案頭備查手冊,強烈推薦。 ——51CTO(www.51cto.com,中國領(lǐng)先的IT技術(shù)網(wǎng)站) 2011年,國內(nèi)安全領(lǐng)域最大的新聞莫過于數(shù)十家網(wǎng)站的用戶數(shù)據(jù)被泄露的事件了。這件事情在當(dāng)時影響極為廣泛,它促使了國內(nèi)的互聯(lián)網(wǎng)企業(yè)重新思考網(wǎng)站安全的重要性并紛紛加強了網(wǎng)站的安全建設(shè)。網(wǎng)站安全的根基在于它的架構(gòu)和具體實現(xiàn),架構(gòu)和實現(xiàn)過程中是否充分利用了技術(shù)的手段來保障安全性直接決定了網(wǎng)站是否安全可靠。如果你打算用.NET技術(shù)開發(fā)網(wǎng)站或相關(guān)的應(yīng)用,抑或是你要負(fù)責(zé)維護用.NET技術(shù)開發(fā)的網(wǎng)站和應(yīng)用的安全性,本書將為你提供全面的指導(dǎo),它幾乎講解了.NET技術(shù)安全性的方方面面,值得學(xué)習(xí)和參考! ——馬偉 資深微軟技術(shù)專家和微軟MVP/暢銷書《ASP.NET 4權(quán)威指南》作者 安全永遠是IT領(lǐng)域最重要、最熱門的話題之一,它是IT產(chǎn)品和服務(wù)的核心。對于軟件產(chǎn)品而言,它的安全性在最初的架構(gòu)、設(shè)計和實現(xiàn)過程中就已經(jīng)決定了,也就是說軟件的安全性其實掌握在架構(gòu)師和程序員手里。如果你是一位.NET程序員或架構(gòu)師,你必須了解.NET平臺的安全機制,以及各種.NET應(yīng)用涉及的安全技術(shù)的細(xì)節(jié),只有這樣才能為你開發(fā)或架構(gòu)的系統(tǒng)提供安全上的技術(shù)保障。目前市面上系統(tǒng)、深入講解.NET安全知識的書不多,本書不可多得。 ——郝冠軍 資深微軟技術(shù)專家和微軟MVP/暢銷書《ASP.NET本質(zhì)論》作者
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載