两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng)與流程

文檔序號:11524306閱讀:302來源:國知局
一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng)與流程

本發(fā)明涉及訪問權(quán)限管理技術(shù)領(lǐng)域,特別是涉及一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng)。



背景技術(shù):

隨著科學技術(shù)的發(fā)展,越來越多的互聯(lián)網(wǎng)用戶通過遠程訪問的方式來獲取外部網(wǎng)絡(luò)的共享資源。想要實現(xiàn)遠程訪問,就需要用戶的客戶端通過遠程登錄的方式連接到服務(wù)器,然后由服務(wù)器調(diào)取數(shù)據(jù)庫中的相應(yīng)信息返回至客戶端。

然而,在互聯(lián)網(wǎng)應(yīng)用中,服務(wù)器為不同的用戶提供不同的服務(wù),即不同的客戶端具有不同的相應(yīng)訪問權(quán)限。各客戶端只能在自身的訪問權(quán)限范圍內(nèi)獲取數(shù)據(jù)庫中的信息。通常情況下,當用戶在進行遠程訪問時,服務(wù)器進行系統(tǒng)調(diào)用權(quán)限的判斷,通常情況下直接作用于文件系統(tǒng)的數(shù)據(jù)(文件和目錄)和數(shù)據(jù)庫連接,所謂的系統(tǒng)調(diào)用指的是進程陷入操作系統(tǒng)內(nèi)核執(zhí)行系統(tǒng)功能的調(diào)用,如創(chuàng)建文件、修改文件和執(zhí)行程序。而系統(tǒng)權(quán)限通常指的是系統(tǒng)調(diào)用時的權(quán)限,典型情況下,權(quán)限通常由文件屬性和進程運行的所屬用戶組決定。當進程執(zhí)行系統(tǒng)調(diào)用時就會受到進程用戶和文件的屬性的局限。

因而,如何實現(xiàn)當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制,是本領(lǐng)域技術(shù)人員目前需要解決的技術(shù)問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是提供一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng),可以實現(xiàn)當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

為解決上述技術(shù)問題,本發(fā)明提供了如下技術(shù)方案:

一種基于文件描述符和會話的權(quán)限控制方法,包括:

預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;

在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對所述系統(tǒng)調(diào)用按會話進行識別;

對所述系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別;

根據(jù)所述當前會話對應(yīng)的會話權(quán)限控制當前系統(tǒng)調(diào)用。

優(yōu)選地,所述預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記,包括:

預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符;

建立與所述新連接信息關(guān)聯(lián)的會話;

將各所述連接文件描述符一一映射到一個會話或者空會話中。

優(yōu)選地,所述在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對所述系統(tǒng)調(diào)用按會話進行識別,包括:

在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,判斷當前系統(tǒng)調(diào)用是否包含預(yù)設(shè)的連接文件描述符;

若是,則更新所述系統(tǒng)調(diào)用所屬的當前會話為該預(yù)設(shè)的連接文件描述符所映射的會話;

執(zhí)行當前系統(tǒng)調(diào)用;

判斷當前系統(tǒng)調(diào)用是否產(chǎn)生了異于所述預(yù)設(shè)的連接文件描述符的新連接文件描述符;

若是,則將該新連接文件描述符映射到當前會話。

優(yōu)選地,所述對所述系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:

獲取所述系統(tǒng)調(diào)用的所述當前會話的發(fā)起終端的ip地址;

根據(jù)所述ip地址和預(yù)設(shè)的角色配置信息,識別所述當前會話的所屬角色;

根據(jù)所述當前會話的所屬角色,調(diào)取該角色對應(yīng)的會話權(quán)限配置。

優(yōu)選地,所述對所述系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:

判斷所述當前會話的會話信息中是否包含預(yù)設(shè)的會話角色認證信息;

若是,則獲取所述會話角色認證信息,并根據(jù)所述會話角色認證信息識別分析出該會話信息的發(fā)起終端的角色,獲取該角色的會話權(quán)限配置。

優(yōu)選地,所述對所述系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:

預(yù)先建立用于預(yù)設(shè)角色通訊的虛擬通訊網(wǎng)絡(luò)隧道;

對所述當前會話的來源隧道進行識別,以判斷所述當前會話所屬的角色;

根據(jù)所述當前會話所屬的角色調(diào)取對應(yīng)的會話權(quán)限配置。

一種基于文件描述符和會話的權(quán)限控制系統(tǒng),包括:

預(yù)處理模塊,用于預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;

識別模塊,用于在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對所述系統(tǒng)調(diào)用按會話進行識別;

權(quán)限識別模塊,用于對所述系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別;

系統(tǒng)調(diào)用模塊,用于根據(jù)所述當前會話對應(yīng)的會話權(quán)限控制當前系統(tǒng)調(diào)用。

優(yōu)選地,所述預(yù)處理模塊包括:

描述符構(gòu)建單元,用于預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符;

會話構(gòu)建單元,用于建立與所述新連接信息關(guān)聯(lián)的會話;

第一映射單元,用于將各所述連接文件描述符一一映射到一個會話或者空會話中。

優(yōu)選地,所述識別模塊包括:

第一判斷單元,用于在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,判斷當前系統(tǒng)調(diào)用是否包含預(yù)設(shè)的連接文件描述符;

會話更新單元,用于在判定當前系統(tǒng)調(diào)用包含預(yù)設(shè)的連接文件描述符時,更新所述系統(tǒng)調(diào)用所屬的當前會話為該預(yù)設(shè)的連接文件描述符所映射的會話;

執(zhí)行單元,用于執(zhí)行當前系統(tǒng)調(diào)用;

第二判斷單元,用于判斷當前系統(tǒng)調(diào)用是否產(chǎn)生了異于所述預(yù)設(shè)的連接文件描述符的新連接文件描述符;

第二映射單元,則將該新連接文件描述符映射到當前會話。

優(yōu)選地,所述權(quán)限識別模塊包括:

第一獲取單元,用于獲取所述系統(tǒng)調(diào)用的所述當前會話的發(fā)起終端的ip地址;

角色識別單元,用于根據(jù)所述ip地址和預(yù)設(shè)的角色配置信息,識別所述當前會話的所屬角色;

第一權(quán)限調(diào)取單元,用于根據(jù)所述當前會話的所屬角色,調(diào)取該角色對應(yīng)的會話權(quán)限配置。

優(yōu)選地,所述權(quán)限識別模塊包括:

第三判斷單元,用于判斷所述當前會話的會話信息中是否包含預(yù)設(shè)的會話角色認證信息;

第二獲取單元,用于在所述第三判斷單元判定所述當前會話的會話信息中包含預(yù)設(shè)的會話角色認證信息時,獲取所述會話角色認證信息,并根據(jù)所述會話角色認證信息識別分析出該會話信息的發(fā)起終端的角色,獲取該角色的會話權(quán)限配置。

優(yōu)選地,所述權(quán)限識別模塊包括:

通訊隧道建立單元,用于預(yù)先建立用于預(yù)設(shè)角色通訊的虛擬通訊網(wǎng)絡(luò)隧道;

來源隧道識別單元,用于對所述當前會話的來源隧道進行識別,以判斷所述當前會話所屬的角色;

第二權(quán)限調(diào)取單元,用于根據(jù)所述當前會話所屬的角色調(diào)取對應(yīng)的會話權(quán)限配置。

與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有以下優(yōu)點:

本發(fā)明實施例所提供的一種基于文件描述符和會話的權(quán)限控制方法,包括:預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對系統(tǒng)調(diào)用按會話進行識別;對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別;根據(jù)當前會話對應(yīng)的會話權(quán)限控制當前系統(tǒng)調(diào)用。在服務(wù)進程接收到新連接后,即接收到新的任務(wù)時,創(chuàng)建與該新連接關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統(tǒng)調(diào)用按會話進行識別,并根據(jù)系統(tǒng)調(diào)用所涉及的連接文件描述符調(diào)整當前會話,對當前會話的會話權(quán)限進行識別,根據(jù)當前會話的會話權(quán)限控制當前系統(tǒng)調(diào)用,可以實現(xiàn)當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明一種具體實施方式所提供的基于文件描述符和會話的權(quán)限控制方法流程圖;

圖2為本發(fā)明一種實施方式所提供的會話識別方法流程圖;

圖3為本發(fā)明一種具體實施方式所提供的基于文件描述符和會話的權(quán)限控制系統(tǒng)結(jié)構(gòu)示意圖。

具體實施方式

本發(fā)明的核心是提供一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng),可以實現(xiàn)當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

為了使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式做詳細的說明。

在以下描述中闡述了具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實施方式的限制。

請參考圖1,圖1為本發(fā)明一種具體實施方式所提供的基于文件描述符和會話的權(quán)限控制方法流程圖。

本發(fā)明的一種具體實施方式提供了一種基于文件描述符和會話的權(quán)限控制方法,包括:

s11:預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記。

在本發(fā)明的一種實施方式中,預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記,包括:預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符;建立與新連接信息關(guān)聯(lián)的會話;將各連接文件描述符一一映射到一個會話或者空會話中。

在本實施方式中,連接文件描述符指的是進程或操作系統(tǒng)中標示打開的文件或連接的一個數(shù)字標識,或者稱為文件句柄。會話指的是在服務(wù)進程接收新連接后,系統(tǒng)為其分配一個會話,該會話與連接進行關(guān)聯(lián),所謂的連接指的是系統(tǒng)中的應(yīng)用程序和數(shù)據(jù)庫連接。將每個連接文件描述符都映射到一個會話或者空會話中,以表示當前會話與會話關(guān)聯(lián)。

s12:在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對系統(tǒng)調(diào)用按會話進行識別。

在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對系統(tǒng)調(diào)用按會話進行識別,包括:在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,判斷當前系統(tǒng)調(diào)用是否包含預(yù)設(shè)的連接文件描述符;若是,則更新系統(tǒng)調(diào)用所屬的當前會話為該預(yù)設(shè)的連接文件描述符所映射的會話;執(zhí)行當前系統(tǒng)調(diào)用;判斷當前系統(tǒng)調(diào)用是否產(chǎn)生了異于預(yù)設(shè)的連接文件描述符的新連接文件描述符;若是,則將該新連接文件描述符映射到當前會話。

需要說明的是,服務(wù)器根據(jù)服務(wù)進程調(diào)用數(shù)據(jù)庫中的數(shù)據(jù),所謂的服務(wù)進程指的是服務(wù)器的應(yīng)用系統(tǒng)中對外部監(jiān)聽端口接收新連接,并提供服務(wù)的進程,如apache(www服務(wù)器),vsftpd(ftp服務(wù)器)。在服務(wù)進程接收新連接后,系統(tǒng)會為其分配一個會話,該會話與連接進行關(guān)聯(lián),以便通過會話的權(quán)限來對系統(tǒng)調(diào)用進行控制。

在本實施方式中,以預(yù)設(shè)的連接文件描述符為描述符參數(shù)fd為例進行說明。如圖2所示,圖2為本發(fā)明一種實施方式所提供的會話識別方法流程圖。在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對系統(tǒng)調(diào)用按會話進行識別,包括:

s21:在進行系統(tǒng)調(diào)用時,判斷系統(tǒng)當前系統(tǒng)調(diào)用中是否包含文件描述符參數(shù)fd。

s22:若是,則更新當前會話為fd映射的會話。

s23:執(zhí)行當前系統(tǒng)調(diào)用。

s24:判斷系統(tǒng)調(diào)用是否產(chǎn)生了新的文件描述符參數(shù)fd-new。

s25:若是,則將fd-new映射到當前會話。

之后,該系統(tǒng)調(diào)用結(jié)束。

在本實施方式中,根據(jù)連接文件描述符識進行會話識別,會話識別不斷根據(jù)系統(tǒng)調(diào)用涉及的連接文件描述符調(diào)整當前會話,并將新的文件描述符映射到當前會話。當創(chuàng)建子進程時,子進程繼承當前會話。

s13:對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別。

在本發(fā)明的一種實施方式中,對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:獲取系統(tǒng)調(diào)用的當前會話的發(fā)起終端的ip地址;根據(jù)ip地址和預(yù)設(shè)的角色配置信息,識別當前會話的所屬角色;根據(jù)當前會話的所屬角色,調(diào)取該角色對應(yīng)的會話權(quán)限配置。

在本實施方式中,角色即指用戶身份,在系統(tǒng)中一個身份擁有一組操作權(quán)限配置。要想知道客戶端(即會話的發(fā)起終端)的權(quán)限,在本實施方式中就通過客戶端建立的會話所屬的角色的身份信息,即識別發(fā)起該該會話的客戶端的身份,只有了解了該客戶端的身份,服務(wù)器才能賦予該客戶端對應(yīng)的權(quán)限來進行系統(tǒng)調(diào)用。通過讀取會話的發(fā)起終端的ip地址來識別發(fā)起會話的客戶端的身份。如當有兩個客戶端訪問服務(wù)器時,客戶端a的ip地址為192.168.1.1,其身份為管理員,預(yù)設(shè)的權(quán)限為“所有”;客戶端b的ip地址為123.45.67.89.其身份為普通用戶,預(yù)設(shè)的權(quán)限為“部分”。則當某一客戶端訪問服務(wù)器并發(fā)起會話時,服務(wù)器讀取發(fā)起會話的客戶端的ip地址,根據(jù)其ip地址即可獲取該客戶端的身份信息,如讀取的是客戶端a的ip地址,則判定此時的客戶端為管理員,相應(yīng)地,即可服務(wù)該客戶端對應(yīng)的權(quán)限來控制當前的系統(tǒng)調(diào)用。由于各客戶端均具有一個唯一的、不同于其他客戶端的ip地址,因此,通過識別發(fā)起會話的客戶端的ip地址,即可識別客戶端的身份,并調(diào)取對應(yīng)的權(quán)限來控制系統(tǒng)調(diào)用。

在本發(fā)明的另一種實施方式中,對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:判斷當前會話的會話信息中是否包含預(yù)設(shè)的會話角色認證信息;若是,則獲取所述會話角色認證信息,并根據(jù)所述會話角色認證信息識別分析出該會話信息的發(fā)起終端的角色,獲取該角色的會話權(quán)限配置。

在本實施方式中,使用二次認證來進行角色的識別。在二次認證中可以引入中間代理,使得所有到達服務(wù)器的數(shù)據(jù)先經(jīng)過中間代理,中間代理對連接進行認證后再傳遞給服務(wù)器進行請求。

具體地,客戶端向中間代理發(fā)送請求內(nèi)容,中間代理判斷會話信息中是否包含預(yù)設(shè)的會話角色認證信息,若沒有,則返回需要認證的提示信息,客戶端再將帶認證信息的請求內(nèi)容發(fā)送至中間代理,在中間代理通過認證后,再將請求內(nèi)容和相關(guān)的角色信息發(fā)送至服務(wù)器,服務(wù)器將答復(fù)內(nèi)容返回至客戶端。在這個過程中,由中間代理來識別發(fā)起會話的客戶端的身份。

在本發(fā)明的另一種實施方式中,對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別,包括:預(yù)先建立用于預(yù)設(shè)角色通訊的虛擬通訊網(wǎng)絡(luò)隧道;對當前會話的來源隧道進行識別,以判斷當前會話所屬的角色;根據(jù)當前會話所屬的角色調(diào)取對應(yīng)的會話權(quán)限配置。

在本實施方式中,采用隧道方式進行角色識別。在該過程中,客戶端通過與服務(wù)器建立虛擬專用通訊網(wǎng)絡(luò)隧道,通過區(qū)分來源隧道來進行角色的識別。如當客戶端角色分為管理員和普通用戶時,管理員客戶端和服務(wù)器進行通訊的隧道為虛擬專用通訊網(wǎng)絡(luò)隧道,而普通用戶客戶端和服務(wù)器進行通訊的隧道為普通網(wǎng)絡(luò)訪問,這樣,當客戶端和服務(wù)器建立會話時,只需識別會話的來源隧道即可判定會話所屬的角色的身份信息。

s14:根據(jù)當前會話對應(yīng)的會話權(quán)限控制當前系統(tǒng)調(diào)用。

進一步地,還可以根據(jù)需要在根據(jù)會話權(quán)限控制當前系統(tǒng)調(diào)用的基礎(chǔ)上,判斷系統(tǒng)調(diào)用是否符合系統(tǒng)的系統(tǒng)自身權(quán)限。在本文中,會話可以指示該會話屬于哪個角色,即該會話所屬的客戶端或者用戶,而不同的角色根據(jù)在系統(tǒng)中的身份擁有一組操作權(quán)限配置。不同的會話對應(yīng)各自的會話權(quán)限。當用戶想要進行系統(tǒng)調(diào)用時,就需要進行會話權(quán)限的檢查,通過會話權(quán)限的檢查來判斷該會話對應(yīng)的角色的數(shù)據(jù)訪問權(quán)限,而系統(tǒng)自身訪問權(quán)限的檢查用來判斷系統(tǒng)可以提供給該角色的數(shù)據(jù)訪問權(quán)限,只有當系統(tǒng)調(diào)用的數(shù)據(jù)能通過會話權(quán)限的檢查時才能夠執(zhí)行當前系統(tǒng)調(diào)用。

在本實施方式中,以一個具體的實施例為例進行說明。

設(shè)有一http服務(wù)器s,ip地址200.200.0.1,應(yīng)用了該基于文件描述符和會話的權(quán)限控制方法,指定了源ip地址192.168.0.1擁有管理員角色(對所有文件有可寫權(quán)限),其它來源地址為普通用戶角色(對所有文件只讀)

假設(shè)用戶從ip地址為192.168.0.2的一個終端發(fā)送http請求:post/changepasswd.php?user=test&pass=test,其目的是更改用戶test的密碼,程序的邏輯將打開磁盤上的文件并進行修改。

其整個過程如下:

1.用戶從192.168.0.2發(fā)起了到200.200.0.1連接請求;

2.服務(wù)器接受了該連接請求,此時一個文件描述符被創(chuàng)建,相應(yīng)的會話信息也被創(chuàng)建,且該會話信息關(guān)聯(lián)了這個文件描述符;

3.會話根據(jù)用戶發(fā)起終端的ip地址查詢得到,這個用戶角色為普通用戶;

4.用戶發(fā)送post/changepasswd.php?user=test&pass=test,服務(wù)器程序開始執(zhí)行修改密碼邏輯;

5.服務(wù)器程序打開密碼文件,得到該密碼文件的文件描述符,依據(jù)本發(fā)明的方法,得知這個描述符同屬于用戶192.168.0.2的會話(步驟2中創(chuàng)建);

6.服務(wù)器程序?qū)γ艽a文件進行寫入,這時檢查會話權(quán)限,得知該用戶不允許文件寫入;

7.返回服務(wù)器程序?qū)懭胧。瑱?quán)限不足的信息;

8.用戶修改密碼的嘗試失敗;

9.上面服務(wù)器程序以及用戶嘗試寫入密碼文件的過程被記錄至數(shù)據(jù)庫以用于后續(xù)的審計。

進一步,管理員從192.168.0.1上登錄,則在步驟3中,用戶角色識別為管理員,則后續(xù)的操作都會被放行。

需要說明的是,當用戶修改密碼失敗之后,若還想提權(quán)再執(zhí)行修改密碼操作的話,可以通過以下方式進行:

a1:選擇遂道或二次認證,這時發(fā)起的請求里帶有隧道或認證信息,在步驟3中就會判斷為其它角色,其它角色如果配置為允許修改這個密碼文件,便能修改成功。

還需要說明的是,在提權(quán)之后主要是根據(jù)隧道或認證信息查看權(quán)限配置,提權(quán)后可以重新選擇角色,該角色也可以是管理員。

其中,會話權(quán)限即表示了該會話對應(yīng)的角色的訪問權(quán)限,從而在判斷系統(tǒng)調(diào)用是否符合權(quán)限時,無需再去判斷系統(tǒng)調(diào)用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權(quán)限的判斷過程。對于應(yīng)用程序的進程對系統(tǒng)調(diào)用引入了會話權(quán)限的檢查來對于服務(wù)器中進行系統(tǒng)調(diào)用時的權(quán)限進行檢查校驗,以控制應(yīng)用程序的權(quán)限,實現(xiàn)了當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

需要說明的是,在本文中的整個通訊服務(wù)過程中,系統(tǒng)調(diào)用主要包括應(yīng)用程序?qū)Υ疟P文件系統(tǒng)進行文件讀寫系統(tǒng)調(diào)用,和應(yīng)用程序?qū)?shù)據(jù)庫程序的數(shù)據(jù)庫連接讀寫的系統(tǒng)調(diào)用。在這兩種情況下進行系統(tǒng)調(diào)用時進行權(quán)限的檢查判斷。

還需要說明的是,系統(tǒng)調(diào)用還包括數(shù)據(jù)庫程序?qū)?shù)據(jù)庫數(shù)據(jù)進行數(shù)據(jù)讀寫的系統(tǒng)調(diào)用,由于在技術(shù)上權(quán)限檢查的意義不大,因此,在本實施方式中,可以不對此處的系統(tǒng)調(diào)用進行權(quán)限檢查判斷。

請參考圖3,圖3為本發(fā)明一種具體實施方式所提供的基于文件描述符和會話的權(quán)限控制系統(tǒng)結(jié)構(gòu)示意圖。

相應(yīng)地,本發(fā)明一種實施方式還提供了一種基于文件描述符和會話的權(quán)限控制系統(tǒng),包括:預(yù)處理模塊31,用于預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符對該會話進行標記;識別模塊32,用于在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,根據(jù)相應(yīng)的連接文件描述符對系統(tǒng)調(diào)用按會話進行識別;權(quán)限識別模塊33,用于對系統(tǒng)調(diào)用的所屬當前會話的會話權(quán)限進行識別;系統(tǒng)調(diào)用模塊34,用于根據(jù)當前會話對應(yīng)的會話權(quán)限控制當前系統(tǒng)調(diào)用。

進一步地,預(yù)處理模塊包括:描述符構(gòu)建單元,用于預(yù)先在接收系統(tǒng)調(diào)用的新連接信息時,建立與該新連接信息關(guān)聯(lián)的連接文件描述符;會話構(gòu)建單元,用于建立與新連接信息關(guān)聯(lián)的會話;第一映射單元,用于將各連接文件描述符一一映射到一個會話或者空會話中。

識別模塊,包括:第一判斷單元,用于在應(yīng)用程序的進程進行系統(tǒng)調(diào)用時,判斷當前系統(tǒng)調(diào)用是否包含預(yù)設(shè)的連接文件描述符;會話更新單元,用于在判定當前系統(tǒng)調(diào)用包含預(yù)設(shè)的連接文件描述符時,更新系統(tǒng)調(diào)用所屬的當前會話為該預(yù)設(shè)的連接文件描述符所映射的會話;執(zhí)行單元,用于執(zhí)行當前系統(tǒng)調(diào)用;第二判斷單元,用于判斷當前系統(tǒng)調(diào)用是否產(chǎn)生了異于預(yù)設(shè)的連接文件描述符的新連接文件描述符;第二映射單元,則將該新連接文件描述符映射到當前會話。

在本發(fā)明的一種實施方式中,權(quán)限識別模塊包括:第一獲取單元,用于獲取系統(tǒng)調(diào)用的當前會話的發(fā)起終端的ip地址;角色識別單元,用于根據(jù)ip地址和預(yù)設(shè)的角色配置信息,識別當前會話的所屬角色;第一權(quán)限調(diào)取單元,用于根據(jù)當前會話的所屬角色,調(diào)取該角色對應(yīng)的會話權(quán)限配置。

在本實施方式中,通過讀取會話的發(fā)起終端的ip地址來識別發(fā)起會話的客戶端的身份。如當有兩個客戶端訪問服務(wù)器時,客戶端a的ip地址為192.168.1.1,其身份為管理員,預(yù)設(shè)的權(quán)限為“所有”;客戶端b的ip地址為123.45.67.89.其身份為普通用戶,預(yù)設(shè)的權(quán)限為“部分”。則當某一客戶端訪問服務(wù)器并發(fā)起會話時,服務(wù)器讀取發(fā)起會話的客戶端的ip地址,根據(jù)其ip地址即可獲取該客戶端的身份信息,如讀取的是客戶端a的ip地址,則判定此時的客戶端為管理員,相應(yīng)地,即可服務(wù)該客戶端對應(yīng)的權(quán)限來控制當前的系統(tǒng)調(diào)用。由于各客戶端均具有一個唯一的、不同于其他客戶端的ip地址,因此,通過識別發(fā)起會話的客戶端的ip地址,即可識別客戶端的身份,并調(diào)取對應(yīng)的權(quán)限來控制系統(tǒng)調(diào)用。

在本發(fā)明的另一種實施方式中,權(quán)限識別模塊包括:第三判斷單元,用于判斷當前會話的會話信息中是否包含預(yù)設(shè)的會話角色認證信息;第二獲取單元,用于在第三判斷單元判定當前會話的會話信息中包含預(yù)設(shè)的會話角色認證信息時,獲取所述會話角色認證信息,并根據(jù)所述會話角色認證信息識別分析出該會話信息的發(fā)起終端的角色,獲取該角色的會話權(quán)限配置。

在本實施方式中,使用二次認證來進行角色的識別。在二次認證中可以引入中間代理,中間代理即上述的會話權(quán)限識別模塊,使得所有到達服務(wù)器的數(shù)據(jù)先經(jīng)過中間代理,中間代理對連接進行認證后再傳遞給服務(wù)器進行請求。

具體地,客戶端向中間代理發(fā)送請求內(nèi)容,中間代理判斷會話信息中是否包含預(yù)設(shè)的會話角色認證信息,若沒有,則返回需要認證的提示信息,客戶端再將帶認證信息的請求內(nèi)容發(fā)送至中間代理,在中間代理通過認證后,再將請求內(nèi)容和相關(guān)的角色信息發(fā)送至服務(wù)器,服務(wù)器將答復(fù)內(nèi)容返回至客戶端。在這個過程中,由中間代理來識別發(fā)起會話的客戶端的身份。

在本發(fā)明的另一種實施方式中,權(quán)限識別模塊包括:通訊隧道建立單元,用于預(yù)先建立用于預(yù)設(shè)角色通訊的虛擬通訊網(wǎng)絡(luò)隧道;來源隧道識別單元,用于對當前會話的來源隧道進行識別,以判斷當前會話所屬的角色;第二權(quán)限調(diào)取單元,用于根據(jù)當前會話所屬的角色調(diào)取對應(yīng)的會話權(quán)限配置。

在本實施方式中,采用隧道方式進行角色識別。在該過程中,客戶端通過與服務(wù)器建立虛擬專用通訊網(wǎng)絡(luò)隧道,通過區(qū)分來源隧道來進行角色的識別。如當客戶端角色分為管理員和普通用戶時,管理員客戶端和服務(wù)器進行通訊的隧道為虛擬專用通訊網(wǎng)絡(luò)隧道,而普通用戶客戶端和服務(wù)器進行通訊的隧道為普通網(wǎng)絡(luò)訪問,這樣,當客戶端和服務(wù)器建立會話時,只需識別會話的來源隧道即可判定會話所屬的角色的身份信息。

在本實施方式中,在服務(wù)進程接收到新連接后,即接收到新的任務(wù)時,創(chuàng)建與該新連接關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統(tǒng)調(diào)用按會話進行識別,根據(jù)系統(tǒng)調(diào)用所涉及的連接文件描述符調(diào)整當前會話,以進行會話識別,根據(jù)識別的當前會話的會話權(quán)限控制當前系統(tǒng)調(diào)用。

在本文中,會話可以指示該會話屬于哪個角色,即該會話所屬的客戶端或者用戶,而不同的角色根據(jù)在系統(tǒng)中的身份擁有一組操作權(quán)限配置。不同的會話對應(yīng)各自的會話權(quán)限。當用戶想要進行系統(tǒng)調(diào)用時,就需要進行會話權(quán)限的檢查,通過會話權(quán)限的檢查來判斷該會話對應(yīng)的角色的數(shù)據(jù)訪問權(quán)限,而系統(tǒng)自身訪問權(quán)限的檢查用來判斷系統(tǒng)可以提供給該角色的數(shù)據(jù)訪問權(quán)限,只有當系統(tǒng)調(diào)用的數(shù)據(jù)能通過會話權(quán)限的檢查時才能夠執(zhí)行當前系統(tǒng)調(diào)用。

其中,會話權(quán)限即表示了該會話對應(yīng)的角色的訪問權(quán)限,從而在判斷系統(tǒng)調(diào)用是否符合權(quán)限時,無需再去判斷系統(tǒng)調(diào)用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權(quán)限的判斷過程。對于應(yīng)用程序的進程對系統(tǒng)調(diào)用引入了會話權(quán)限的檢查來對于服務(wù)器中進行系統(tǒng)調(diào)用時的權(quán)限進行檢查校驗,以控制應(yīng)用程序的權(quán)限,實現(xiàn)了當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

綜上所述,本發(fā)明所提供的基于文件描述符和會話的權(quán)限控制方法和系統(tǒng),在服務(wù)進程接收到新連接后,即接收到新的任務(wù)時,創(chuàng)建與該新連接關(guān)聯(lián)的連接文件描述符和會話,并通過該連接文件描述符標記該會話,這樣,就可以對系統(tǒng)調(diào)用按會話進行識別,根據(jù)系統(tǒng)調(diào)用所涉及的連接文件描述符調(diào)整當前會話,以進行會話識別,根據(jù)識別的當前會話的會話權(quán)限控制當前系統(tǒng)調(diào)用。會話權(quán)限即表示了該會話對應(yīng)的角色的訪問權(quán)限,從而在判斷系統(tǒng)調(diào)用是否符合權(quán)限時,無需再去判斷系統(tǒng)調(diào)用的文件屬性和進行運行的所屬用戶的屬性,極大地簡化了權(quán)限的判斷過程。對于應(yīng)用程序的進程對系統(tǒng)調(diào)用引入了會話權(quán)限的檢查來對于服務(wù)器中進行系統(tǒng)調(diào)用時的權(quán)限進行檢查校驗,以控制應(yīng)用程序的權(quán)限,實現(xiàn)了當進程執(zhí)行系統(tǒng)調(diào)用時不局限于進程用戶和文件的屬性而進行權(quán)限的控制。

以上對本發(fā)明所提供一種基于文件描述符和會話的權(quán)限控制方法和系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明及其核心思想。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
万全县| 安岳县| 辽宁省| 东明县| 昭通市| 科技| 泗洪县| 柘城县| 中牟县| 城市| 含山县| 彭阳县| 岳阳县| 黔西县| 大新县| 阳谷县| 余姚市| 长治县| 西青区| 阳曲县| 青神县| 页游| 灌云县| 新昌县| 沙坪坝区| 诸暨市| 定日县| 玉门市| 萨迦县| 信宜市| 青河县| 威远县| 临泉县| 界首市| 高安市| 仁布县| 镇沅| 五莲县| 门源| 蒙阴县| 夏津县|