亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP安全之文件系統安全及防范措施

瀏覽:6日期:2022-09-15 11:21:48

PHP 遵從大多數服務器系統中關于文件和目錄權限的安全機制。這就使管理員可以控制哪些文件在文件系統內是可讀的。必須特別注意的是全局的可讀文件,并確保每一個有權限的用戶對這些文件的讀取動作都是安全的。

PHP 被設計為以用戶級別來訪問文件系統,所以完全有可能通過編寫一段 PHP 代碼來讀取系統文件如 /etc/passwd,更改網絡連接以及發送大量打印任務等等。因此必須確保 PHP 代碼讀取和寫入的是合適的文件。

請看下面的代碼,用戶想要刪除自己主目錄中的一個文件。假設此情形是通過 web 界面來管理文件系統,因此 Apache 用戶有權刪除用戶目錄下的文件。

Example #1 不對變量進行安全檢查會導致……

<?php // 從用戶目錄中刪除指定的文件 $username = $_POST[’user_submitted_name’]; $userfile = $_POST[’user_submitted_filename’]; $homedir = '/home/$username'; unlink ('$homedir/$userfile'); echo 'The file has been deleted!';?>

既然 username 和 filename 變量可以通過用戶表單來提交,那就可以提交別人的用戶名和文件名,甚至可以刪掉本來不應該讓他們刪除的文件。這種情況下,就要考慮其它方式的認證。想想看如果提交的變量是“../etc/”和“passwd”會發生什么。上面的代碼就等同于:

Example #2 ……文件系統攻擊

<?php // 刪除硬盤中任何 PHP 有訪問權限的文件。如果 PHP 有 root 權限: $username = $_POST[’user_submitted_name’]; // '../etc' $userfile = $_POST[’user_submitted_filename’]; // 'passwd' $homedir = '/home/$username'; // '/home/../etc' unlink('$homedir/$userfile'); // '/home/../etc/passwd' echo 'The file has been deleted!';?>

有兩個重要措施來防止此類問題。

只給 PHP 的 web 用戶很有限的權限。檢查所有提交上來的變量。

下面是改進的腳本:

Example #3 更安全的文件名檢查

<?php // 刪除硬盤中 PHP 有權訪問的文件 $username = $_SERVER[’REMOTE_USER’]; // 使用認證機制 $userfile = basename($_POST[’user_submitted_filename’]); $homedir = '/home/$username'; $filepath = '$homedir/$userfile'; if (file_exists($filepath) && unlink($filepath)) {$logstring = 'Deleted $filepathn'; } else {$logstring = 'Failed to delete $filepathn'; } $fp = fopen('/home/logging/filedelete.log', 'a'); fwrite ($fp, $logstring); fclose($fp); echo htmlentities($logstring, ENT_QUOTES);?>

然而,這樣做仍然是有缺陷的。如果認證系統允許用戶建立自己的登錄用戶名,而用戶選擇用“../etc/”作為用戶名,系統又一次淪陷了。所以,需要加強檢查:

Example #4 更安全的文件名檢查

<?php $username = $_SERVER[’REMOTE_USER’]; // 使用認證機制 $userfile = $_POST[’user_submitted_filename’]; $homedir = '/home/$username'; $filepath = '$homedir/$userfile'; if (!ctype_alnum($username) || !preg_match(’/^(?:[a-z0-9_-]|.(?!.))+$/iD’, $userfile)) {die('Bad username/filename'); } //后略……?>

根據操作系統的不同,存在著各種各樣需要注意的文件,包括聯系到系統的設備(/dev/ 或者 COM1)、配置文件(/ect/ 文件和 .ini文件)、常用的存儲區域(/home/ 或者 My Documents)等等。由于此原因,建立一個策略禁止所有權限而只開放明確允許的通常更容易些。

標簽: PHP
相關文章:
主站蜘蛛池模板: 久久精品视频在线观看 | 成人综合色站 | 黄视频在线免费看 | 成人午夜小视频手机在线看 | 国产又黄又爽又色视频影视网免费 | 国产精品久久亚洲不卡4k岛国 | 国产性tv国产精品 | 亚洲一区欧美日韩 | 福利在线免费视频 | 国产一区二区在线视频 | 国产精品福利视频免费观看 | 在线观看三级视频 | 免费网址你懂的 | 国产精品久久永久免费 | 国产成人精品免费视频大 | 99国产精品免费视频观看 | 97se狠狠狠狠狠亚洲综合网 | 免费观看又色又爽又大高清网站 | 免费淫片 | 综合亚洲一区二区三区 | 国产亚洲精品一区二区 | 九九热线有精品视频99 | 亚洲欧美日韩国产一区二区三区精品 | 国语偷拍视频在线观看 | 亚洲成在人线影视天堂网 | 成人精品视频在线观看 | 欧美日韩一区二区视频图片 | 26uuu在线| 亚洲福利一区福利三区 | 女人色毛片女人色毛片中国 | 粉嫩00福利视频在线精品 | 亚洲国产精品成人精品软件 | 一级毛片大全 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片看看 | 中文字幕在线观看日韩 | 麻豆传媒官方入口 | 免费看一级毛片 | 久久久久国产精品免费免费不卡 | 在线国产你懂的 | www一级黄色片 | 骚黄视频 |