• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 淺析通如何加強(qiáng)php的安全

        時(shí)間:2024-09-19 12:35:34 PHP 我要投稿
        • 相關(guān)推薦

        淺析通如何加強(qiáng)php的安全

          小編語:經(jīng)過以下的配置,雖然說不上固若金湯,但是也在相當(dāng)程度上給攻擊者的測試造成很多麻煩,即使php腳本程序出現(xiàn)比較嚴(yán)重的漏洞,攻擊者也無法造成實(shí)際性的破壞。

          1、編譯的時(shí)候注意補(bǔ)上已知的漏洞

          從4.0.5開始,php的mail函數(shù)加入了第五個(gè)參數(shù),但它沒有好好過濾,使得php 應(yīng)用程序能突破safe_mode的限制而去執(zhí)行命令。所以使用4.0.5和4.0.6的時(shí)候 在編譯前我們需要修改php源碼包里

          ext/standard/mail.c文件,禁止mail函數(shù)的第五參數(shù)或過濾shell字符。在mail.c

          文件的第152行,也就是下面這行:

          if (extra_cmd != NULL) {

          后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);

          然后編譯php,那么我們就修補(bǔ)了這個(gè)漏洞。

          2、修改php.ini配置文件

          以php發(fā)行版的php.ini-dist為藍(lán)本進(jìn)行修改。

          1)Error handling and logging

          在Error handling and logging部分可以做一些設(shè)定。先找到:

          display_errors = On

          php缺省是打開錯(cuò)誤信息顯示的,我們把它改為:

          display_errors = Off

          關(guān)閉錯(cuò)誤顯示后,php函數(shù)執(zhí)行錯(cuò)誤的信息將不會(huì)再顯示給用戶,這樣能在一

          定程度上防止攻擊者從錯(cuò)誤信息得知腳本的物理位置,以及一些其它有用的 信息,起碼給攻擊者的黑箱檢測造成一定的障礙 。這些錯(cuò)誤信息可能對我們 自己有用,可以讓它寫到指定文件中去,那么修改以下:

          log_errors = Off

          改為:

          log_errors = On

          以及指定文件,找到下面這行:

          ;error_log = filename

          去掉前面的;注釋,把filename改為指定文件,如

          /usr/local/apache/logs/php_error.log

          error_log = /usr/local/apache/logs/php_error.log

          這樣所有的錯(cuò)誤都會(huì)寫到php_error.log文件里。

          2)Safe Mode

          php的safe_mode功能對很多函數(shù)進(jìn)行了限制或禁用了,能在很大程度解決php的

          安全問題。在Safe Mode部分找到:

          safe_mode = Off

          改為:

          safe_mode = On

          這樣就打開了safe_mode功能。象一些能執(zhí)行系統(tǒng)命令的函數(shù)shell_exec()和`` 被禁止,其它的一些執(zhí)行函數(shù)如:exec(), system(), passthru(), popen() 將被限制只能執(zhí)行safe_mode_exec_dir指定目錄下的程序。如果你實(shí)在是要 執(zhí)行一些命令或程序,找到以下:

          safe_mode_exec_dir =

          指定要執(zhí)行的程序的路徑,如:

          safe_mode_exec_dir = /usr/local/php/exec

          然后把要用的程序拷到/usr/local/php/exec目錄下,這樣,象上面的被限制

          的函數(shù)還能執(zhí)行該目錄里的程序。

          關(guān)于安全模式下受限函數(shù)的詳細(xì)信息請查看php主站的說明:

          http://www.php.net/manual/en/features.safe-mode.php

          3)disable_functions

          如果你對一些函數(shù)的危害性不太清楚,而且也沒有使用,索性把這些函數(shù)禁

          止了。找到下面這行:

          disable_functions =

          在”=“后面加上要禁止的函數(shù),多個(gè)函數(shù)用”,“隔開。

          3、修改httpd.conf

          如果你只允許你的php腳本程序在web目錄里操作,還可以修改httpd.conf文件限 制php的操作路徑。比如你的web目錄是/usr/local/apache/htdocs,那么在

          httpd.conf里加上這么幾行:

          

          php_admin_value open_basedir /usr/local/apache/htdocs

          

          這樣,如果腳本要讀取/usr/local/apache/htdocs以外的文件將不會(huì)被允許,

          如果錯(cuò)誤顯示打開的話

          會(huì)提示這樣的錯(cuò)誤:

          Warning: open_basedir restriction in effect. File is in wrong directory in

          /usr/local/apache/htdocs/open.php on line 4

          等等。

          4、對php代碼進(jìn)行編譯

          Zend對php的貢獻(xiàn)很大,php4的引擎就是用Zend的,而且它還開發(fā)了ZendOptimizer

          和ZendEncode等許多php的加強(qiáng)組件。優(yōu)化器ZendOptimizer只需在

          http://www.zend.com注冊就可以免費(fèi)得到,下面幾個(gè)是用于4.0.5和4.0.6的

          ZendOptimizer,文件名分別對于各自的系統(tǒng):

          ZendOptimizer-1[1].1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz

          ZendOptimizer-1[1].1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz

          ZendOptimizer-1[1].1.0-PHP_4.0.5-Solaris-sparc.tar.gz

          ZendOptimizer-1[1].1.0-PHP_4.0.5-Windows-i386.zip

          優(yōu)化器的安裝非常方便,包里面都有詳細(xì)的說明。以UNIX版本的為例,看清操

          作系統(tǒng),把包里的ZendOptimizer.so文件解壓到一個(gè)目錄,假設(shè)是/usr/local/lib

          下,在php.ini里加上兩句:

          zend_optimizer.optimization_level=15

          zend_extension="/usr/local/lib/ZendOptimizer.so"

          就可以了。用phpinfo()看到Zend圖標(biāo)左邊有下面文字:

          with Zend Optimizer v1.1.0, Copyright (c) 1998-2000, by Zend Technologies

          那么,優(yōu)化器已經(jīng)掛接成功了。

          但是編譯器ZendEncode并不是免費(fèi)的,這里提供給大家一個(gè)

          http://www.PHPease.com的馬勇設(shè)計(jì)的編譯器外殼,如果用于商業(yè)目的,請與

          http://www.zend.com聯(lián)系取得許可協(xié)議。

          php腳本編譯后,腳本的執(zhí)行速度增加不少,腳本文件只能看到一堆亂碼,這將

          阻止攻擊者進(jìn)一步分析服務(wù)器上的腳本程序,而且原先在php腳本里以明文存儲

          的口令也得到了保密,如mysql的口令。不過在服務(wù)器端改腳本就比較麻煩了,

          還是本地改好再上傳吧。

          5、文件及目錄的權(quán)限設(shè)置

          web目錄里除了上傳目錄,其它的目錄和文件的權(quán)限一定不能讓nobody用戶有寫

          權(quán)限。否則,攻擊者可 以修改主頁文件,所以web目錄的權(quán)限一定要設(shè)置好

          。 還有,php腳本的屬主千萬不能是root,因?yàn)閟afe_mode下讀文件的函數(shù)被限

          制成被讀文件的屬主必須 和當(dāng)前執(zhí)行腳本的屬主是一樣才能被讀,否則如果

          錯(cuò)誤顯示打開的話會(huì)顯示諸如以下的錯(cuò)誤:

          Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not

          allowed to access /etc/passwd owned by uid 0 in /usr/local/apache/htdocs/open.php

          on line 3

          這樣我們能防止許多系統(tǒng)文件被讀,比如:/etc/passwd等。

          上傳目錄和上傳腳本的屬主也要設(shè)成一樣,否則會(huì)出現(xiàn)錯(cuò)誤的,在safe_mode下

          這些要注意。

          6、mysql的啟動(dòng)權(quán)限設(shè)置

          mysql要注意的是不要用root來啟動(dòng),最好另外建一個(gè)mysqladm用戶。可以在

          /etc/rc.local等系統(tǒng)啟動(dòng)腳本里加上一句:

          su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"

          這樣系統(tǒng)重啟后,也會(huì)自動(dòng)用mysqladmin用戶啟動(dòng)mysql進(jìn)程。

          7、日志文件及上傳目錄的審核及

          查看日志和人的惰性有很大關(guān)系,要從那么大的日志文件里查找攻擊痕跡有些大海撈針,而且也未必有。 web上傳的目錄里的文件,也應(yīng)該經(jīng)常檢查,也許

          程序有問題,用戶傳上了一些非法的文件,比如執(zhí)行腳本等。

          8、操作系統(tǒng)自身的補(bǔ)丁

          一樣,給系統(tǒng)打已知漏洞的補(bǔ)丁是系統(tǒng)管理員最基本的職責(zé),這也是最后一道防線。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【淺析通如何加強(qiáng)php的安全】相關(guān)文章:

        淺析php函數(shù)的實(shí)例04-01

        如何加強(qiáng)施工安全管理03-10

        如何加強(qiáng)安全生產(chǎn)管理01-17

        如何加強(qiáng)安全評價(jià)機(jī)構(gòu)的管理10-15

        如何學(xué)好PHP知識03-30

        淺析國有企業(yè)如何加強(qiáng)員工心理健康管理01-31

        如何加強(qiáng)客運(yùn)安全生產(chǎn)管理02-17

        如何加強(qiáng)班組安全生產(chǎn)管理02-17

        PHP如何做好最基礎(chǔ)的安全防范03-29

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 一级视频国产免费 | 午夜性色福利在线视频网 | 日本久久免费高清国产 | 日本中文字幕在线视频播二区 | 日本高清中文字幕有码在线 | 亚洲欧洲中文字幕乱码 |

            淺析通如何加強(qiáng)php的安全

              小編語:經(jīng)過以下的配置,雖然說不上固若金湯,但是也在相當(dāng)程度上給攻擊者的測試造成很多麻煩,即使php腳本程序出現(xiàn)比較嚴(yán)重的漏洞,攻擊者也無法造成實(shí)際性的破壞。

              1、編譯的時(shí)候注意補(bǔ)上已知的漏洞

              從4.0.5開始,php的mail函數(shù)加入了第五個(gè)參數(shù),但它沒有好好過濾,使得php 應(yīng)用程序能突破safe_mode的限制而去執(zhí)行命令。所以使用4.0.5和4.0.6的時(shí)候 在編譯前我們需要修改php源碼包里

              ext/standard/mail.c文件,禁止mail函數(shù)的第五參數(shù)或過濾shell字符。在mail.c

              文件的第152行,也就是下面這行:

              if (extra_cmd != NULL) {

              后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);

              然后編譯php,那么我們就修補(bǔ)了這個(gè)漏洞。

              2、修改php.ini配置文件

              以php發(fā)行版的php.ini-dist為藍(lán)本進(jìn)行修改。

              1)Error handling and logging

              在Error handling and logging部分可以做一些設(shè)定。先找到:

              display_errors = On

              php缺省是打開錯(cuò)誤信息顯示的,我們把它改為:

              display_errors = Off

              關(guān)閉錯(cuò)誤顯示后,php函數(shù)執(zhí)行錯(cuò)誤的信息將不會(huì)再顯示給用戶,這樣能在一

              定程度上防止攻擊者從錯(cuò)誤信息得知腳本的物理位置,以及一些其它有用的 信息,起碼給攻擊者的黑箱檢測造成一定的障礙 。這些錯(cuò)誤信息可能對我們 自己有用,可以讓它寫到指定文件中去,那么修改以下:

              log_errors = Off

              改為:

              log_errors = On

              以及指定文件,找到下面這行:

              ;error_log = filename

              去掉前面的;注釋,把filename改為指定文件,如

              /usr/local/apache/logs/php_error.log

              error_log = /usr/local/apache/logs/php_error.log

              這樣所有的錯(cuò)誤都會(huì)寫到php_error.log文件里。

              2)Safe Mode

              php的safe_mode功能對很多函數(shù)進(jìn)行了限制或禁用了,能在很大程度解決php的

              安全問題。在Safe Mode部分找到:

              safe_mode = Off

              改為:

              safe_mode = On

              這樣就打開了safe_mode功能。象一些能執(zhí)行系統(tǒng)命令的函數(shù)shell_exec()和`` 被禁止,其它的一些執(zhí)行函數(shù)如:exec(), system(), passthru(), popen() 將被限制只能執(zhí)行safe_mode_exec_dir指定目錄下的程序。如果你實(shí)在是要 執(zhí)行一些命令或程序,找到以下:

              safe_mode_exec_dir =

              指定要執(zhí)行的程序的路徑,如:

              safe_mode_exec_dir = /usr/local/php/exec

              然后把要用的程序拷到/usr/local/php/exec目錄下,這樣,象上面的被限制

              的函數(shù)還能執(zhí)行該目錄里的程序。

              關(guān)于安全模式下受限函數(shù)的詳細(xì)信息請查看php主站的說明:

              http://www.php.net/manual/en/features.safe-mode.php

              3)disable_functions

              如果你對一些函數(shù)的危害性不太清楚,而且也沒有使用,索性把這些函數(shù)禁

              止了。找到下面這行:

              disable_functions =

              在”=“后面加上要禁止的函數(shù),多個(gè)函數(shù)用”,“隔開。

              3、修改httpd.conf

              如果你只允許你的php腳本程序在web目錄里操作,還可以修改httpd.conf文件限 制php的操作路徑。比如你的web目錄是/usr/local/apache/htdocs,那么在

              httpd.conf里加上這么幾行:

              

              php_admin_value open_basedir /usr/local/apache/htdocs

              

              這樣,如果腳本要讀取/usr/local/apache/htdocs以外的文件將不會(huì)被允許,

              如果錯(cuò)誤顯示打開的話

              會(huì)提示這樣的錯(cuò)誤:

              Warning: open_basedir restriction in effect. File is in wrong directory in

              /usr/local/apache/htdocs/open.php on line 4

              等等。

              4、對php代碼進(jìn)行編譯

              Zend對php的貢獻(xiàn)很大,php4的引擎就是用Zend的,而且它還開發(fā)了ZendOptimizer

              和ZendEncode等許多php的加強(qiáng)組件。優(yōu)化器ZendOptimizer只需在

              http://www.zend.com注冊就可以免費(fèi)得到,下面幾個(gè)是用于4.0.5和4.0.6的

              ZendOptimizer,文件名分別對于各自的系統(tǒng):

              ZendOptimizer-1[1].1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz

              ZendOptimizer-1[1].1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz

              ZendOptimizer-1[1].1.0-PHP_4.0.5-Solaris-sparc.tar.gz

              ZendOptimizer-1[1].1.0-PHP_4.0.5-Windows-i386.zip

              優(yōu)化器的安裝非常方便,包里面都有詳細(xì)的說明。以UNIX版本的為例,看清操

              作系統(tǒng),把包里的ZendOptimizer.so文件解壓到一個(gè)目錄,假設(shè)是/usr/local/lib

              下,在php.ini里加上兩句:

              zend_optimizer.optimization_level=15

              zend_extension="/usr/local/lib/ZendOptimizer.so"

              就可以了。用phpinfo()看到Zend圖標(biāo)左邊有下面文字:

              with Zend Optimizer v1.1.0, Copyright (c) 1998-2000, by Zend Technologies

              那么,優(yōu)化器已經(jīng)掛接成功了。

              但是編譯器ZendEncode并不是免費(fèi)的,這里提供給大家一個(gè)

              http://www.PHPease.com的馬勇設(shè)計(jì)的編譯器外殼,如果用于商業(yè)目的,請與

              http://www.zend.com聯(lián)系取得許可協(xié)議。

              php腳本編譯后,腳本的執(zhí)行速度增加不少,腳本文件只能看到一堆亂碼,這將

              阻止攻擊者進(jìn)一步分析服務(wù)器上的腳本程序,而且原先在php腳本里以明文存儲

              的口令也得到了保密,如mysql的口令。不過在服務(wù)器端改腳本就比較麻煩了,

              還是本地改好再上傳吧。

              5、文件及目錄的權(quán)限設(shè)置

              web目錄里除了上傳目錄,其它的目錄和文件的權(quán)限一定不能讓nobody用戶有寫

              權(quán)限。否則,攻擊者可 以修改主頁文件,所以web目錄的權(quán)限一定要設(shè)置好

              。 還有,php腳本的屬主千萬不能是root,因?yàn)閟afe_mode下讀文件的函數(shù)被限

              制成被讀文件的屬主必須 和當(dāng)前執(zhí)行腳本的屬主是一樣才能被讀,否則如果

              錯(cuò)誤顯示打開的話會(huì)顯示諸如以下的錯(cuò)誤:

              Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not

              allowed to access /etc/passwd owned by uid 0 in /usr/local/apache/htdocs/open.php

              on line 3

              這樣我們能防止許多系統(tǒng)文件被讀,比如:/etc/passwd等。

              上傳目錄和上傳腳本的屬主也要設(shè)成一樣,否則會(huì)出現(xiàn)錯(cuò)誤的,在safe_mode下

              這些要注意。

              6、mysql的啟動(dòng)權(quán)限設(shè)置

              mysql要注意的是不要用root來啟動(dòng),最好另外建一個(gè)mysqladm用戶。可以在

              /etc/rc.local等系統(tǒng)啟動(dòng)腳本里加上一句:

              su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"

              這樣系統(tǒng)重啟后,也會(huì)自動(dòng)用mysqladmin用戶啟動(dòng)mysql進(jìn)程。

              7、日志文件及上傳目錄的審核及

              查看日志和人的惰性有很大關(guān)系,要從那么大的日志文件里查找攻擊痕跡有些大海撈針,而且也未必有。 web上傳的目錄里的文件,也應(yīng)該經(jīng)常檢查,也許

              程序有問題,用戶傳上了一些非法的文件,比如執(zhí)行腳本等。

              8、操作系統(tǒng)自身的補(bǔ)丁

              一樣,給系統(tǒng)打已知漏洞的補(bǔ)丁是系統(tǒng)管理員最基本的職責(zé),這也是最后一道防線。