日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談Java安全編碼之文件和共享目錄的安全性

瀏覽:226日期:2022-08-10 17:10:42
目錄一、linux下的文件基本權(quán)限二、linux文件的特殊權(quán)限2.1、Set UID 和 Set GID2.2、Sticky Bit2.3、SUID/SGID/SBIT權(quán)限設(shè)置三、文件隱藏屬性四、特殊文件五、java中在共享目錄中使用文件要注意的問題六、安全目錄一、linux下的文件基本權(quán)限

chmod是linux下面的權(quán)限管理命令,我們可以通過chmod來對(duì)文件的權(quán)限進(jìn)行修改。

普通文件的權(quán)限有三種,rwx分別是讀,寫和執(zhí)行。再加上三個(gè)用戶分組:owner,group,other 我們可以很方便的使用三個(gè)0-7的數(shù)字來表示一個(gè)文件的權(quán)限。

舉個(gè)例子,我們創(chuàng)建一個(gè)文件:

touch test.log

看一下默認(rèn)的文件權(quán)限:

ll test.log

-rw-r--r--  1 flydean  wheel     0B  8 16 10:36 test.log

默認(rèn)的文件權(quán)限是644,也就是說owner權(quán)限是讀寫,group權(quán)限是讀,其他權(quán)限是讀。

我們可以使用chmod命令對(duì)其進(jìn)行修改,比如:

chmod 777 test.log

ll test.log

-rwxrwxrwx  1 flydean  wheel     0B  8 16 10:36 test.log

可以看出權(quán)限被修改成為777。

二、linux文件的特殊權(quán)限

講完普通權(quán)限,我們接下來講一下linux文件中的特殊權(quán)限。

2.1、Set UID 和 Set GID

考慮一個(gè)常用的修改密碼的例子,修改密碼調(diào)用的是/usr/bin/passwd,看下這個(gè)文件的權(quán)限:

ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

可以看到有個(gè)很奇怪的s權(quán)限。這個(gè)s是什么意思呢?s實(shí)際是x的變種,是一種特殊的可執(zhí)行權(quán)限。

特殊在哪里呢?passwd是修改用戶的密碼,密碼文件實(shí)際上是存放在 /etc/shadow中的。

我們看下/etc/shadow的權(quán)限:

ll /etc/shadow

---------- 1 root root 707 Jan  2  2020 /etc/shadow

/etc/shadow的owner是root,只有root才權(quán)限強(qiáng)行寫入這個(gè)文件。

那么問題來了,普通用戶調(diào)用passwd是怎么修改的/etc/shadow呢?

這就是s的妙用,s表示Set UID,簡(jiǎn)稱為SUID,這個(gè)UID表示User的ID,而User表示這個(gè)程序(/usr/bin/passwd)的擁有者(root),那么我們?cè)谡{(diào)用passwd的過程時(shí)候,就會(huì)暫時(shí)擁有passwd owner的權(quán)限,也就是root權(quán)限。

注意,SUID只能用在二進(jìn)制文件中,它是對(duì)x權(quán)限的一個(gè)替換,并且SUID對(duì)目錄是無效的。

同樣的,我們也可以給group設(shè)置UID權(quán)限,也就是Set GID。

不同的是SGID可以使用在文件和目錄兩個(gè)地方。

用在文件中是和SUID一樣的,用在目錄中的意思是在該目錄中所建的文件或目錄的用戶組都和該目錄的用戶組是一樣的。

2.2、Sticky Bit

Sticky Bit表示的是特殊的other權(quán)限,用t來表示。

/tmp目錄就是一個(gè)Sticky Bit的例子: drwxrwxrwt 。

SBit對(duì)目錄的作用是:“在具有SBit的目錄下,用戶若在該目錄下具有w及x權(quán)限,則當(dāng)用戶在該目錄下建立文件或目錄時(shí),只有文件擁有者與root才有權(quán)力刪除”

這個(gè)特性就是為了保護(hù)我們?cè)诠蚕砟夸浵碌奈募槐粍e人刪除。

2.3、SUID/SGID/SBIT權(quán)限設(shè)置

怎么設(shè)置這些權(quán)限呢?

普通權(quán)限我們是用3個(gè)數(shù)字來表示的,我們可以在3個(gè)數(shù)字之前再加上一個(gè)數(shù)字表示SUID/SGID/SBIT權(quán)限。

和普通權(quán)限一樣,我們用4來表示SUID,2表示SGID,1表示SBIT。

舉個(gè)例子:

touch test

chmod 6755 test

ll test

-rwsr-sr-x 1 crawler crawler 0 Aug 16 11:43 test

注意,有時(shí)候我們會(huì)遇到大寫的S與T的情況,這種情況出現(xiàn)在user、group以及others都沒有x這個(gè)可執(zhí)行的標(biāo)志,所以大寫的S和T表示為空。

三、文件隱藏屬性

有些linux系統(tǒng)提供了chattr命令來設(shè)置文件隱藏屬性。

我們看下chattr的使用:

Usage: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...

參數(shù):

增加某個(gè)特殊參數(shù),其他原本存在的參數(shù)不動(dòng)。 刪除某個(gè)特殊參數(shù),其他原本存在的參數(shù)不動(dòng)。

= : 設(shè)置一定,且僅有后面接的參數(shù)

A : 當(dāng)設(shè)置了A屬性時(shí),這個(gè)文件(或目錄)的存取時(shí)間atime(access)將不可被修改,可避免例如手提電腦有磁盤I/O錯(cuò)誤的情況發(fā)生。

S : 這個(gè)功能有點(diǎn)類似sync.就是將數(shù)據(jù)同步寫入磁盤中。可以有效地避免數(shù)據(jù)流失。

a : 設(shè)置a之后,這個(gè)文件將只能增加數(shù)據(jù),而不能刪除,只有root才能設(shè)置這個(gè)屬性。

c : 這個(gè)屬性設(shè)置之后,將會(huì)自動(dòng)將此文件“壓縮”,在讀取的時(shí)候?qū)?huì)自動(dòng)解壓縮,但在存儲(chǔ)的時(shí)候,將會(huì)先進(jìn)行壓縮后再存儲(chǔ)(對(duì)于大文件有用)。

d : 當(dāng)執(zhí)行dump(備份)程序的時(shí)候,設(shè)置d屬性將可使該文件(或目錄)具有轉(zhuǎn)儲(chǔ)功效。

i : i的作用很大。它可以讓一個(gè)文件“不能被刪除、改名、設(shè)置連接,也無法寫入或新增數(shù)據(jù)”。對(duì)于系統(tǒng)安全性有相當(dāng)大的幫助。

j : 當(dāng)使用ext3文件系統(tǒng)格式時(shí),設(shè)置j屬性將會(huì)使文件在寫入時(shí)先記錄在journal中。但是,當(dāng)文件系統(tǒng)設(shè)置參數(shù)為data=journalled時(shí),由于已經(jīng)設(shè)置日志了,所以這個(gè)屬性無效。

s : 當(dāng)文件設(shè)置了s參數(shù)時(shí),它將會(huì)從這個(gè)硬盤空間完全刪除。

u : 與s相反,當(dāng)使用u來設(shè)置文件時(shí),則數(shù)據(jù)內(nèi)容其實(shí)還存在磁盤中,可以用來還原刪除。

四、特殊文件

linux中還有一些特殊的文件,比如鏈接文件和設(shè)備文件。

在處理鏈接文件的時(shí)候,我們需要注意判斷鏈接文件的真實(shí)指向。

而設(shè)備文件我們需要注意不合理的授權(quán)訪問。

五、java中在共享目錄中使用文件要注意的問題

共享目錄中因?yàn)樗腥硕加胁僮魑募臋?quán)限,所以,我們需要特別注意在java中共享目錄中文件的操作。

根據(jù)java的規(guī)范, java.nio.channels.FileLock可以用來表示文件的鎖定。

通常來講,鎖定有兩種,一種是排他鎖,一種是共享鎖。

共享鎖可防止其他同時(shí)運(yùn)行的程序獲取重疊的排他鎖,但確實(shí)允許它們獲取重疊的共享鎖。排他鎖可防止其他程序獲取任一類型的重疊鎖。

共享鎖支持來自多個(gè)進(jìn)程的并發(fā)讀取訪問;獨(dú)占鎖支持獨(dú)占寫訪問。

但是,加鎖是否真正的阻塞其他程序?qū)υ撐募脑L問,實(shí)際是取決于操作系統(tǒng)。

在使用中,我們需要對(duì)用戶用戶傳入的文件進(jìn)行一些必要的校驗(yàn),比如是否是常規(guī)文件:

String filename = /* Provided by user */;Path path = new File(filename).toPath();try { BasicFileAttributes attr = Files.readAttributes( path, BasicFileAttributes.class, LinkOption.NOFOLLOW_LINKS); // Check if (!attr.isRegularFile()) { System.out.println('Not a regular file'); return; } // Other necessary checks // Use try (InputStream in = Files.newInputStream(path)) { // Read file };} catch (IOException x) { // Handle error}

上面的例子中,我們通過獲取File的屬性,來判斷這個(gè)屬性是否regularFile,注意,我們?cè)谧x取文件屬性的時(shí)候,傳入了一個(gè)LinkOption.NOFOLLOW_LINKS,表示的是不要follow鏈接。

雖然我們首先判斷了file的權(quán)限,然后再對(duì)其進(jìn)行操作,但是上面的例子還是會(huì)有問題的。因?yàn)榇嬖跁r(shí)間差的問題,如果惡意用戶在判斷之后將文件替換成了惡意的鏈接文件,就會(huì)出現(xiàn)問題。

六、安全目錄

為了保證用戶的文件操作安全性,我們引入一個(gè)安全目錄的概念,所謂安全目錄就是目錄除了用戶本身和超級(jí)管理員之外,沒有其他用戶的寫訪問權(quán)限,并且給定文件的父目錄不會(huì)被除了系統(tǒng)管理員之外的其他任何用戶刪除或重命名。

在下方的源碼鏈接中,我提供了一個(gè)查看安全目錄的class,大家可以自行查看。

本文的代碼:learn-java-base-9-to-20/tree/master/security

以上就是淺談Java安全編碼之文件和共享目錄的安全性的詳細(xì)內(nèi)容,更多關(guān)于Java安全編碼 文件和共享目錄的安全性的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本精品一区二区三区在线观看视频| 99热精品在线| 狠狠久久婷婷| 亚洲乱亚洲高清| 欧美日韩四区| av资源亚洲| 激情欧美国产欧美| 亚洲三级在线| 国产精品久久久亚洲一区| 欧美日韩在线精品一区二区三区激情综合| 国产农村妇女精品一二区| 日本亚州欧洲精品不卡| caoporn视频在线| 在线一区免费观看| 亚洲免费毛片| 日本麻豆一区二区三区视频| 亚洲三级在线| 亚洲精品第一| 午夜精品影视国产一区在线麻豆| 久久不卡国产精品一区二区| 亚洲天堂成人| 91精品综合| 欧美黑人做爰爽爽爽| 欧美国产中文高清| 国产一区亚洲| 国产精品美女在线观看直播| 久久国产尿小便嘘嘘| 激情综合网五月| 精品三级国产| 日韩av网站在线观看| 欧美日韩1区2区3区| 卡一卡二国产精品| 久久精品国产福利| 国产精品白丝久久av网站| 一区二区三区视频免费观看| 久久这里只有| 伊人久久亚洲| 欧美日韩视频一区二区三区| 麻豆精品视频在线观看视频| 日韩视频一区| 久久久777| 香蕉成人av| 国产成人精选| 欧美日韩精品一区二区三区视频 | 怡红院精品视频在线观看极品| 欧美日中文字幕| 精品视频一区二区三区四区五区 | 久久精品国产久精国产爱| 日韩av在线播放网址| 精品美女久久| 狠狠干综合网| 欧美中文日韩| 亚洲欧美日韩国产综合精品二区 | 日本成人手机在线| 捆绑调教美女网站视频一区| 欧美一区在线观看视频| japanese国产精品| 久久夜色精品| 午夜在线精品偷拍| 亚洲精品中文字幕乱码| 亚洲精品一区二区妖精| 国产精品多人| av中文资源在线资源免费观看| 日韩一级网站| 亚洲久久在线| 久久九九精品| 黄色不卡一区| 精品精品99| 中文在线免费视频| 欧美成人基地| 日韩精品一二三区| 国产精品视频一区二区三区| 久久精品人人| 欧美日韩视频一区二区三区| 只有精品亚洲| 欧美激情 亚洲a∨综合| 日韩成人精品一区| 久久婷婷亚洲| 视频一区视频二区中文字幕| 91成人福利| 99久久久久| 久久国产日韩欧美精品| 婷婷成人综合| 国产一区二区三区黄网站| 伊人精品在线| 国产精品亚洲人成在99www| 国产精品videossex久久发布| 日韩不卡免费高清视频| 欧美日韩a区| 亚洲欧洲另类| 97精品国产一区二区三区| 亚洲女同中文字幕| 四虎8848精品成人免费网站 | 日韩欧美另类一区二区| 日产欧产美韩系列久久99| 久久久久欧美精品| 久久精品天堂| 日本成人一区二区| 中文在线一区| 久久久久国产精品一区三寸| 免费观看久久久4p| 日韩欧美二区| 国产精品毛片久久| 欧美亚洲一区二区三区| 欧美日韩国产精品一区二区亚洲| 国产一区二区三区视频在线| 石原莉奈一区二区三区在线观看| 1024精品一区二区三区| 丝袜美腿诱惑一区二区三区| 国产成人在线中文字幕| 六月婷婷一区| 丝袜脚交一区二区| 亚洲久久视频| 视频一区日韩| 欧美网站在线| 国产成人a视频高清在线观看| 国产极品模特精品一二| 日韩免费精品| 亚洲一区欧美二区| 伊人久久成人| 999久久久精品国产| 国产福利片在线观看| 欧美激情久久久久久久久久久| 欧美国产三级| 国产精品久久久久久久久久白浆| 最近国产精品视频| 国产传媒在线观看| jizzjizz中国精品麻豆| 日韩欧美一区二区三区免费看| 成人在线丰满少妇av| 国产调教一区二区三区| 国产精品久久久久久模特| 国产精品一站二站| 麻豆免费精品视频| 在线精品亚洲| 97精品资源在线观看| 福利一区视频| 久久中文字幕av| 亚洲毛片在线| 精品理论电影在线| 亚洲午夜黄色| 色综合狠狠操| 日韩欧美一区二区三区在线视频 | 噜噜噜久久亚洲精品国产品小说| 好看的亚洲午夜视频在线| 欧美日韩国产免费观看| 亚洲欧美日韩在线观看a三区| 国产精品美女久久久| 亚洲tv在线| 久久久久久自在自线| 亚洲大全视频| 91亚洲精品在看在线观看高清| 久久免费精品| 久久一区二区三区电影| 久久av在线| 日韩一区精品| 麻豆91小视频| 1024精品一区二区三区| 日韩一区二区三区免费视频 | 久久九九电影| 日本在线一区二区三区| 麻豆91小视频| 亚洲国产专区校园欧美| 日韩精品免费一区二区夜夜嗨| 国产 日韩 欧美一区| 亚洲免费专区| 久久久久久久久丰满| 亚洲aa在线| 三级小说欧洲区亚洲区| 亚洲韩日在线| 免费视频一区二区三区在线观看 | 热久久免费视频| 色爱综合网欧美| 亚洲精品影视| 亚洲黄页一区| 伊人网在线播放| 日韩高清欧美激情| 欧美午夜不卡影院在线观看完整版免费| 欧美日韩精品一区二区三区在线观看| 欧美成人基地| 精品黄色一级片| 欧美伊人久久| 免费久久精品视频| 日本久久黄色| 国产一区国产二区国产三区| 水蜜桃久久夜色精品一区的特点 | 日韩高清不卡在线| 国产乱码午夜在线视频| 日韩一区二区三区在线看| 日韩毛片视频| 国产精品亚洲人成在99www| 国产精品日韩| 日韩欧美一区二区三区免费观看| 亚洲一区二区三区中文字幕在线观看| 精品国产鲁一鲁****| 久久激五月天综合精品| 免播放器亚洲| 中文字幕亚洲影视| 视频一区视频二区中文字幕| 亚洲综合国产|