中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      淺析通如何加強php的安全

      時間:2024-09-19 12:35:34 PHP 我要投稿
      • 相關推薦

      淺析通如何加強php的安全

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

        1、編譯的時候注意補上已知的漏洞

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

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

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

        if (extra_cmd != NULL) {

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

        然后編譯php,那么我們就修補了這個漏洞。

        2、修改php.ini配置文件

        以php發行版的php.ini-dist為藍本進行修改。

        1)Error handling and logging

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

        display_errors = On

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

        display_errors = Off

        關閉錯誤顯示后,php函數執行錯誤的信息將不會再顯示給用戶,這樣能在一

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

        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

        這樣所有的錯誤都會寫到php_error.log文件里。

        2)Safe Mode

        php的safe_mode功能對很多函數進行了限制或禁用了,能在很大程度解決php的

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

        safe_mode = Off

        改為:

        safe_mode = On

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

        safe_mode_exec_dir =

        指定要執行的程序的路徑,如:

        safe_mode_exec_dir = /usr/local/php/exec

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

        的函數還能執行該目錄里的程序。

        關于安全模式下受限函數的詳細信息請查看php主站的說明:

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

        3)disable_functions

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

        止了。找到下面這行:

        disable_functions =

        在”=“后面加上要禁止的函數,多個函數用”,“隔開。

        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以外的文件將不會被允許,

        如果錯誤顯示打開的話

        會提示這樣的錯誤:

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

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

        等等。

        4、對php代碼進行編譯

        Zend對php的貢獻很大,php4的引擎就是用Zend的,而且它還開發了ZendOptimizer

        和ZendEncode等許多php的加強組件。優化器ZendOptimizer只需在

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

        ZendOptimizer,文件名分別對于各自的系統:

        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

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

        作系統,把包里的ZendOptimizer.so文件解壓到一個目錄,假設是/usr/local/lib

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

        zend_optimizer.optimization_level=15

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

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

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

        那么,優化器已經掛接成功了。

        但是編譯器ZendEncode并不是免費的,這里提供給大家一個

        http://www.PHPease.com的馬勇設計的編譯器外殼,如果用于商業目的,請與

        http://www.zend.com聯系取得許可協議。

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

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

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

        還是本地改好再上傳吧。

        5、文件及目錄的權限設置

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

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

        。 還有,php腳本的屬主千萬不能是root,因為safe_mode下讀文件的函數被限

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

        錯誤顯示打開的話會顯示諸如以下的錯誤:

        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

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

        上傳目錄和上傳腳本的屬主也要設成一樣,否則會出現錯誤的,在safe_mode下

        這些要注意。

        6、mysql的啟動權限設置

        mysql要注意的是不要用root來啟動,最好另外建一個mysqladm用戶。可以在

        /etc/rc.local等系統啟動腳本里加上一句:

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

        這樣系統重啟后,也會自動用mysqladmin用戶啟動mysql進程。

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

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

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

        8、操作系統自身的補丁

        一樣,給系統打已知漏洞的補丁是系統管理員最基本的職責,這也是最后一道防線。

      【淺析通如何加強php的安全】相關文章:

      淺析php函數的實例04-01

      如何加強施工安全管理03-10

      如何加強安全生產管理01-17

      如何加強安全評價機構的管理10-15

      如何學好PHP知識03-30

      淺析國有企業如何加強員工心理健康管理01-31

      如何加強客運安全生產管理02-17

      如何加強班組安全生產管理02-17

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

      主站蜘蛛池模板: 少妇被搞高潮在线免费观看| 新宁县| 日本一区二区三区黄色| 上虞市| 亚洲蜜桃av一区二区三区| 成人av在线日韩一区| 国内精品国产三级国产av另类| 阜平县| 内江市| 麻豆国产AV网站| 中文字幕有码高清| 亚洲一区二区av偷偷| 无码免费午夜福利片在线| 国产精品无码mv在线观看| 明光市| 双流县| 淮滨县| 海阳市| 都匀市| 欧洲乱码伦视频免费| 欧洲亚洲色一区二区色99| 久久无码中文字幕东京热| 亚洲无人一区二区蜜桃| 久草精品手机视频在线观看| 北岛玲中文字幕人妻系列| 国产伦理自拍视频在线观看| 成年女人18毛片毛片免费| 郯城县| 平原县| 昆山市| 营口市| 亚洲精品中文有码字幕| 邯郸县| 精品人妻一区二区久久| aⅴ色综合久久天堂av色综合| 多伦县| 欧美丝袜激情办公室在线观看| 国产粉嫩美女一区二区三 | 国产精品av在线一区二区三区| 日本熟女人妻一区二区三区| 中文字幕大乳少妇|