日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

87 FreeBSD連載:基于用戶的訪問控制

基于用戶的訪問控制更嚴(yán)格、有效的控制方法還是基于用戶和對應(yīng)的口令對瀏覽客戶進行控制 。這使得對這個目錄進行強制性的保護,瀏覽器用戶必須輸入合法的用戶名和正確的口令才能瀏覽網(wǎng)頁 。如果要針對用戶對訪問服務(wù)器的客戶進行控制,首先就要設(shè)置訪問控制文件為對用戶進行認(rèn)證,因此要允許目錄訪問控制文件中具備AuthConfig的設(shè)置 。
設(shè)置用戶認(rèn)證需要為這個目錄指定AuthName、AuthType和AuthUserFile指令,AuthUserFile定義一個口令文件,那么此后就可以使用require valid-user命令讓客戶輸入名字和正確的口令,根據(jù)這個口令文件對用戶的身份進行驗證 。AuthName定義這個認(rèn)證的標(biāo)識,用于返回給瀏覽器用戶,起到提示作用 。AuthType定義使用的認(rèn)證加密類型,通常使用Basic,即使用Unix的標(biāo)準(zhǔn)加密算法進行加密 。
AuthUserFile /usr/local/etc/htpasswdAuthName SecurityAuthAuthType Basicrequire vaild-user這個例子里,使用/usr/local/etc/htpasswd作口令文件,使用Basic的加密認(rèn)證方法,并定義AuthName為SecurityAuth 。
雖然瀏覽器訪問每個使用這種認(rèn)證方式保護的網(wǎng)頁都需要先進行認(rèn)證,然而不會每訪問一次網(wǎng)頁都讓用戶輸入用戶名和口令,因為瀏覽器會將用戶輸入的用戶和口令數(shù)據(jù)保存起來,每次需要認(rèn)證的時候就自動進行認(rèn)證操作 。由于認(rèn)證是通過HEAD請求來完成的,因此它不會影響瀏覽器顯示的網(wǎng)頁 。然而,用戶有可能使用瀏覽器訪問了多個不同的對用戶進行認(rèn)證的網(wǎng)頁,那么瀏覽器就會保存了多個不同的用戶和口令對,當(dāng)自動進行認(rèn)證的時候,瀏覽器必須區(qū)分出應(yīng)該使用哪個用戶名和口令進行認(rèn)證,而區(qū)分就是通過AuthName的值進行的,服務(wù)器將首先將AuthName的值傳遞給客戶瀏覽器,此后瀏覽器就能發(fā)送正確的用戶和口令進行認(rèn)證了 。
要使用口令文件來認(rèn)證合法用戶,首先就必須生成這個口令文件 。當(dāng)認(rèn)證類型為Basic時,口令文件與Unix的passwd文件非常類似,甚至可以直接使用系統(tǒng)passwd文件來作認(rèn)證文件,當(dāng)然由于現(xiàn)代Unix使用了shadow技術(shù),/etc/passwd中并沒有保存真實的加密口令,因此直接使用系統(tǒng)passwd文件進行認(rèn)證只能適合那些沒有使用shadow技術(shù)的Unix系統(tǒng) 。而使用shadow技術(shù)的Unix系統(tǒng)的真實口令文件(FreeBSD下為master.passwd)被保護起來,讀取它需要root權(quán)限,而Web服務(wù)器通常以普通用戶的權(quán)限運行,不能直接使用系統(tǒng)口令對用戶進行認(rèn)證 。如果強制使用root權(quán)限啟動httpd守護進程來訪問shadow之后的口令,那么必然會帶來嚴(yán)重的安全漏洞 。
因此一般使用與系統(tǒng)口令相分離的口令文件來認(rèn)證Web服務(wù)器用戶,這樣即使口令被泄露,并被破譯,造成的安全影響也很小,不至于影響系統(tǒng)的正常運行 ??梢允褂肁pache附帶的htpasswd命令來創(chuàng)建口令文件,并設(shè)置用戶及其口令 。
$ htpasswd -c .htpasswd user1Adding PassWord for user1New password:Re-type new password:htpasswd的-c選項告訴htpasswd創(chuàng)建一個新口令文件為.htpasswd,如果沒有這個選項,htpasswd就將用戶及其口令加入已經(jīng)存在的口令文件中 。此后的參數(shù)就是口令文件名和需要增加或改變口令的用戶名 。
為了便于管理,可以進一步將這些用戶分組,組文件的每一行定義了一個組及其成員的名字,然后在.htaccess中使用AuthGroupFile指定這個目錄使用的組文件的名字,例如:
group1: user1 user2 user3 user4這條內(nèi)容創(chuàng)建了一個口令組group1,包括user1,user2,user3,user4成員 。
除了可以使用require valid-user要求輸入的用戶必須為口令文件中的合法用戶之外,也可以設(shè)置要求只有特定的合法用戶才能訪問的目錄,這就需要使用require user或require group指令 。例如使用require user user1要求只有user1用戶才能訪問,使用require group group1就要求必須是group1組的合法成員才能訪問 。針對具體用戶和組的訪問控制就進一步增加了訪問控制的靈活性 。

推薦閱讀