⑴ 什麼事訪問控制訪問控制包括哪幾個要素
訪問控制是幾乎所有系統(包括計算機系統和非計算機系統)都需要用到的一種技術。訪問控制是按用戶身份及其所歸屬的某項定義組來限制用戶對某些信息項的訪問,或限制對某些控制功能的使用的一種技術。
訪問控制包括伺服器、目錄、文件等。訪問控制是給出一套方法,將系統中的所有功能標識出來,組織起來,託管起來,將所有的數據組織起來標識出來託管起來, 然後提供一個簡單的唯一的介面,這個介面的一端是應用系統一端是許可權引擎。
(1)c基礎封裝與訪問控制擴展閱讀
實現機制:訪問控制的實現機制建立訪問控制模型和實現訪問控制都是抽象和復雜的行為,實現訪問的控制不僅要保證授權用戶使用的許可權與其所擁有的許可權對應,制止非授權用戶的非授權行為;還要保證敏感信息的交叉感染。
為了便於討論這一問題,我們以文件的訪問控制為例對訪問控制的實現做具體說明。通常用戶訪問信息資源(文件或是資料庫),可能的行為有讀、寫和管理。為方便起見,我們用Read或是R表示讀操作,Write或是W表示寫操作,Own或是O表示管理操作。
⑵ c語言代碼,可以像c++一樣封裝嗎
封裝或者面向對象是編程思想,C或C++只是工具,沒什麼好比的。C或者C++都可以用來寫面向對象的程序,只是說C++會方便一些或者說對人會友好一點,C更直接或者說更貼近機器。
⑶ 訪問控制的基本原理和常見模型
訪問控制的功能及原理:
訪問控制的主要功能包括:保證合法用戶訪問受權保護的網路資源,防止非法的主體進入受保護的網路資源,或防止合法用戶對受保護的網路資源進行非授權的訪問。訪問控制首先需要對用戶身份的合法性進行驗證,同時利用控制策略進行選用和管理工作。當用戶身份和訪問許可權驗證之後,還需要對越權操作進行監控。因此,訪問控制的內容包括認證、控制策略實現和安全審計。
1、認證。包括主體對客體的識別及客體對主體的檢驗確認;
2、控制策略。通過合理地設定控制規則集合,確保用戶對信息資源在授權范圍內的合法使用。既要確保授權用戶的合理使用,又要防止非法用戶侵權進入系統,使重要信息資源泄露。同時對合法用戶,也不能越權行使許可權以外的功能及訪問范圍;
3、安全審計。系統可以自動根據用戶的訪問許可權,對計算機網路環境下的有關活動或行為進行系統的、獨立的檢查驗證,並做出相應評價與審計。
訪問控制的模型:
主要的訪問控制類型有3種模型:自主訪問控制(DAC)、強制訪問控制(MAC)和基於角色訪問控制(RBAC)。
1、自主訪問控制
自主訪問控制(Discretionary Access Control,DAC)是一種接入控制服務,通過執行基於系統實體身份及其到系統資源的接入授權。包括在文件,文件夾和共享資源中設置許可。用戶有權對自身所創建的文件、數據表等訪問對象進行訪問,並可將其訪問權授予其他用戶或收回其訪問許可權。允許訪問對象的屬主制定針對該對象訪問的控制策略,通常,可通過訪問控制列表來限定針對客體可執行的操作。
2、強制訪問控制
強制訪問控制(MAC)是系統強制主體服從訪問控制策略。是由系統對用戶所創建的對象,按照規定的規則控制用戶許可權及操作對象的訪問。主要特徵是對所有主體及其所控制的進程、文件、段、設備等客體實施強制訪問控制。
3、基於角色的訪問控制
角色(Role)是一定數量的許可權的集合。指完成一項任務必須訪問的資源及相應操作許可權的集合。角色作為一個用戶與許可權的代理層,表示為許可權和用戶的關系,所有的授權應該給予角色而不是直接給用戶或用戶組。
⑷ C語言學完後的心得體會
1.編程模型
所有計算機均由兩種元素組成:代碼和數據.精確的說,有些程序是圍繞著"什麼正在發生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.
第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特徵,可被理解為作用於數據的代碼.如 C 等過程化語言.
第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數據(對象)和針對該對象而嚴格定義的介面來組織程序,它的特點是數據控制代碼的訪問.通過把控制權轉移到數據上,面向對象的模型在組織方式上有:抽象,封裝,繼承和多態的好處.
2.抽象
面向對象程序設計的基本要素是抽象,程序員通過抽象來管理復雜性.
管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據物理含義分解一個復雜的系統,把它劃分成更容易管理的塊.例如,一個計算機系統是一個獨立的對象.而在計算機系統內部由幾個子系統組成:顯示器,鍵盤,硬碟驅動器,DVD-ROM,軟盤,音響等,這些子系統每個又由專門的部件組成.關鍵是需要使用層次抽象來管理計算機系統(或其他任何復雜系統)的復雜性.
面向對象程序設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什麼的消息進行響應.
/* (我的理解)
*計算機是一個實體,我要輸入字元,顯示器顯示出來,那麼
*計算機(對象).輸入(鍵盤屬性).顯示(顯示方法)
*使用分層來引用,操作.而不用管計算機內部如何處理.
*只要有計算機對象,它就能響應我的操作,而我敲鍵盤,
*計算機對象就把這個消息傳給屏幕,屏幕顯示.
*/
計算機對象包含了它所有的屬性,以及操作,這就是面向對象程序設計的三大原則之一:封裝.
3.封裝
封裝是一種把代碼和代碼所操作的數據捆綁在一起,使這兩者不受外界干擾和誤用的機制.封裝可被理解為一種用做保護的包裝器,以防止代碼和數據被包裝器外部所定義的其他代碼任意訪問.對包裝器內部代碼與數據的訪問通過一個明確定義的介面來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用.
在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數據和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例.
在定義一個類時,需要指定構成該類的代碼與數據.特別是,類所定義的對象叫做成員變數或實例變數.操作數據的代碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作實例數據的方法來定義.
由於類的用途是封裝復雜性,所以類的內部有隱藏實現復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有介面代表外部的用戶應該知道或可以知道的每件東西.私有的方法數據只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情.
4.繼承
繼承是指一個對象從另一個對象中獲得屬性的過程.是面向對象程序設計的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特徵.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性.
繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向對象程序在復雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他代碼不會產生無法預料的交互作用.
5.多態
多態是指一個方法只能有一個名稱,但可以有許多形態,也就是程序中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以通過方法的參數和類型引用.
6.封裝,繼承,多態的組合使用
在由封裝,繼承,多態所組成的環境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有介面的代碼即可實現程序的移植.多態能使程序員開發出簡潔,易懂,易修改的代碼.例如:汽車
從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是賓士牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經過一段時間駕駛後,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.
從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復雜性,其外觀如此簡單,用腳就能操作它.發動機,手剎,輪胎大小的實現對與剎車類的定義沒有影響.
從多態的角度看,剎車系統有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的介面可以用來控制若干種不同的實現(正鎖或反鎖).
這樣各個獨立的構件才被轉換為汽車這個對象的.同樣,通過使用面向對象的設計原則,程序員可以把一個復雜程序的各個構件組合在一起,形成一個一致,健壯,可維護的程序