日日麻批免费40分钟日本的_99久久伊人一区二区yy5o99_嗯啊~流水噗呲h啪啪hhh双性_uc浏览器下载安装2022最新版

西安網(wǎng)站建設(shè) | 西安網(wǎng)站制作 | 西安網(wǎng)站設(shè)計(jì) | 西安小程序開發(fā) | 兄弟網(wǎng)絡(luò) - 西安網(wǎng)站建設(shè)十余年經(jīng)驗(yàn),值得信賴!
了解市場新觀點(diǎn),內(nèi)部案例剖析,增強(qiáng)服務(wù)意識(shí)與專業(yè)水平。

從中國菜刀看PHP的運(yùn)行安全問題

來源:西安網(wǎng)站制作   日期:2015-06-14 16:14:28   點(diǎn)擊:4334

近些日子,小蔣的一篇博文引起了廣大主機(jī)商的關(guān)注。

其原因是小蔣運(yùn)營的創(chuàng)智主機(jī)被提交了漏洞到烏云網(wǎng)上:

PHP運(yùn)行 Chroot 虛擬主機(jī) 網(wǎng)站安全 AMH面板

在這篇文章中小蔣給出了解決方法,就是采用禁用函數(shù)的方法來保證服務(wù)器環(huán)境的安全。

但是,禁用函數(shù)真的是最好的選擇么?不是的!

AMH面板的開發(fā)者Amysql告訴我們,更好的選擇是Chroot!

AMH面板是一款LNMP面板,一方面,為了方便版本升級(jí),另一方面,面板是開發(fā)者一個(gè)人開發(fā)的,所以AMH沒有像kangle,WDCP,LUM,webmin等采用二進(jìn)制文件實(shí)現(xiàn)平臺(tái)的環(huán)境,而是使用基于AMP的PHP程序來控制平臺(tái)。這樣,就要考慮到PHP的安全問題了。由于PHP寫成的程序,所以需要大量的的使用exec,shell_exec兩個(gè)函數(shù)來實(shí)現(xiàn)面板和系統(tǒng)的信息交換處理。顯然,小蔣給出的限制函數(shù)的方法并不適合AMH這樣的面板。那么,Amysql如何解決PHP的運(yùn)行安全問題呢?

Amysql采用了這樣的方法。對于AMH下的虛擬主機(jī),一律開啟Chroot來保證安全,而控制臺(tái)PHP則關(guān)閉chroot來保證面板的正常運(yùn)作。

說了這么多,那么什么是Chroot呢?

據(jù)維基百科的詞條解釋,Chroot本是Unix下的一個(gè)命令,但是,在PHP-FPM中,也是引入了這一功能。

維基詞條

chroot是在unix系統(tǒng)的一個(gè)操作,用于對當(dāng)前的程序和它的子進(jìn)程改變真實(shí)的磁盤根目錄

Chroot的工作原理是什么呢?

由于LNMP環(huán)境下,PHP-FPM與Nginx的通信只能通過CGI實(shí)現(xiàn),所以,如果你在FPM設(shè)置中對文件的根目錄進(jìn)行修改,那么,你的PHP程序就無法跨越這個(gè)指定的根目錄。

而面板所在的虛擬主機(jī),由于沒有開啟Chroot,所以使用的根目錄依然是系統(tǒng)的根目錄 /

具體解釋一下?

就拿我用的AMH面板的控制臺(tái)和普通虛擬主機(jī)來說明。

控制臺(tái)文件放在/home/Wwwroot/Index/Web文件夾下,

普通主機(jī)的文件放在/home/wwwroot/Domain/web文件夾下。

對于控制臺(tái)程序,由于沒有開啟Chroot,所以,這個(gè)PHP文件的實(shí)際位置和運(yùn)行位置相同,都是/home/wwwroot/Index/web/,而其根目錄就是/;

對于普通虛擬主機(jī),開啟Chroot,那么,雖然,運(yùn)行的文件的位置是/home/wwwroot/domain/web/index.php,但是經(jīng)過Chroot的導(dǎo)向,在PHP程序中,實(shí)際認(rèn)為的文件地址是/web/index.php.

同時(shí)在/home/wwwroot/domain/為了使入侵者認(rèn)為自己進(jìn)入的是根系統(tǒng),而仿照Unix的文件夾命名規(guī)則,創(chuàng)建了etc,usr,tmp,lib等文件夾,如同為PHP程序創(chuàng)建了一個(gè)沙盒.所以,使用Chroot的用戶不用害怕中國軍刀,因?yàn)樗荒茉谏潮P內(nèi)起作用,無法對主系統(tǒng)產(chǎn)生影響,從而造成經(jīng)濟(jì)損失

沙盒(英語:sandbox),有時(shí)也稱為沙箱,是為一些來源不可信、具備破壞力或無法判定程序意圖的程序提供試驗(yàn)的環(huán)境。然而,沙盒中的所有改動(dòng)對操作系統(tǒng)不會(huì)造成任何損失。通常,這種技術(shù)被計(jì)算機(jī)技術(shù)人員廣泛使用,尤其是計(jì)算機(jī)殺毒軟件行業(yè),沙盒是一個(gè)觀察計(jì)算機(jī)病毒的重要環(huán)境。

我們都知道,在類Unix系統(tǒng)中,所有程序,甚至設(shè)備,都是由文件表示,我們所使用的ls,wget命令,事實(shí)上都對應(yīng)著一個(gè)特定的可執(zhí)行文件,而當(dāng)我們使用Chroot后,由于/home/wwwwroot/domain/usr下沒有相應(yīng)的文件,也就無法執(zhí)行相應(yīng)的命令。從而保證系統(tǒng)信息的安全。

與禁用函數(shù)相比,Chroot有什么優(yōu)點(diǎn)呢?

禁用函數(shù)是針對整個(gè)PHP程序而言的,所有需要通過PHP程序進(jìn)行解析的文件,都會(huì)受到禁用函數(shù)的設(shè)置。

網(wǎng)站程序不同,那么有可能需要的函數(shù)不同,不同的虛擬主機(jī)無法單獨(dú)設(shè)置。

而Chroot可以根據(jù)不同的虛擬主機(jī),進(jìn)行特異化設(shè)置。對于需要使用特殊函數(shù)的程序,可以關(guān)閉Chroot,來保證網(wǎng)站程序的正常運(yùn)轉(zhuǎn);程序不需要調(diào)用特殊的程序,就可以開啟Chroot模式;如果只是要啟用一個(gè)或兩個(gè)特定的程序,你可以仿照如下的過程添加函數(shù)。比如說,當(dāng)我們開啟Chroot時(shí),PHP程序是無法使用sendmail()函數(shù)來發(fā)信的,我們可以使用mini_sendmail替代sendmail來修復(fù)發(fā)信。

  • cd /home/wwwroot/www.ixiqin.com/
  • cp -P /bin/bash /bin/sh bin
  • cp /etc/passwd /etc/group etc
  • cd /tmp
  • wget http://centos.googlecode.com/files/mini_sendmail-1.3.6.tar.gz
  • tar xzf mini_sendmail-1.3.6.tar.gz
  • cd mini_sendmail-1.3.6
  • make
  • cp mini_sendmail /home/wwwroot/www.ixiqin.com/usr/sbin/sendmail

以上代碼,在/tmp目錄下編譯mini_sendmail,然后將生成的可執(zhí)行文件復(fù)制到chroot后目錄下相應(yīng)位置,以保證發(fā)件系統(tǒng)的正常運(yùn)行。

非AMH用戶如何使用Chroot功能

如果你是AMH的用戶,那你就省心了,因?yàn)锳mysql將這個(gè)功能集成到了模塊里,而且默認(rèn)情況下每一個(gè)虛擬主機(jī)都是開啟了安全模式的,你只需要在后臺(tái)下載AMChroot模塊,管理即可。

如果你不是AMH用戶,也可以使用這個(gè)功能,只需要修改Nginx和PHP-FPM的配置文件即可。

由于要把domain站點(diǎn)限制在/home/wwwroot/domain,所以對于php-fpm,此網(wǎng)站根目錄已經(jīng)變成是/web,所以我們需要更改Nginx傳遞給php-fpm的網(wǎng)站根目錄地址。

找到

  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

更改為

  • fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name;

同時(shí),將php-fpm.conf文件中的Chroot改為

  • chroot = /home/wwwroot/domain

有什么需要注意的呢?

Tips One:Chroot模式下,各種探針,如雅黑探針將會(huì)失效,報(bào)錯(cuò)。

Tips Two:Chroot模式可用做在線shell模擬器,安全真實(shí)。

綜合以上分析,我建議,與其使用死板的禁用函數(shù),我們?yōu)槭裁床辉囋嚫雍糜玫腃hroot呢?

注:相關(guān)網(wǎng)站建設(shè)技巧閱讀請移步到建站教程頻道。

上一篇:站長們注意了!百度已加大清理新聞源力度     下一篇:防中國菜刀:禁用 php 函數(shù) 增強(qiáng)網(wǎng)站安全
掃碼立即溝通
公眾號(hào)加關(guān)注
版權(quán)所有:西安兄弟信息科技有限公司 陜ICP備07012704號(hào)-8   地址:西安市三橋街道恒大都市廣場(1號(hào)線灃東自貿(mào)園站C1口)  營業(yè)執(zhí)照    網(wǎng)站地圖  
關(guān)閉
029-86512630 工作:8:30-17:30

*