廣受客戶好評,滿足您的居家收納和風格,免費丈量設計 客製化系統家具,充分滿足居家空間機能需求 | 現場免費專人估價,廠房拆除、違章建築拆除 專業工程團隊,親切用心服務您! |
解決error_log檔快速增加的問題 |
房東:台灣人 發表時間:2007-05-21 | [檢舉] |
在php.ini中的display_error=on把它設成off ,log_errors = On它設成off ,重新啟動httpd,這樣錯誤訊息就會少很多 修改php.ini網頁伺服器設定檔: (11) 錯誤日誌 建議在關閉display_errors後能夠把錯誤訊息記錄下來,便於查找伺服器營運的原因︰ log_errors = On register_globals=on display_errors=off file_uploads=on upload_max_filesize=20M default_socket_timeout=600 SMTP=您的郵件伺服器(例如:mail.bamboo.hc.edu.tw) [email protected] 存檔(記得重新啟動Apache) |
廣利不動產-新板特區指名度最高、值得您信賴的好房仲 您的托付,廣利用心為您服務 廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲 完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心! |
1 樓住戶:台灣人 發表時間:2007-05-21 | [檢舉] |
(1) 打開php的安全模式 php的安全模式是個非常重要的內嵌的安全機製,能夠控制一些php中的函數,比如system(), 同時把很多檔案操作函數進行了權限控制,也不允許對某些關鍵檔案的檔案,比如/etc/passwd, 但是預設的php.ini是沒有打開安全模式的,我們把它打開︰ safe_mode = on (2) 用戶組安全 當safe_mode打開時,safe_mode_gid被關閉,那麼php腳本能夠對檔案進行訪問,而且相同 組的用戶也能夠對檔案進行訪問。 建議設定為︰ safe_mode_gid = off 如果不進行設定,可能我們無法對我們伺服器網站目錄下的檔案進行操作了,比如我們需要 對檔案進行操作的時候。 (3) 安全模式下執行程式主目錄 如果安全模式打開了,但是卻是要執行某些程式的時候,可以指定要執行程式的主目錄︰ safe_mode_exec_dir = D:/usr/bin 一般情況下是不需要執行什麼程式的,所以推薦不要執行系統程式目錄,可以指向一個目錄, 然後把需要執行的程式拷貝過去,比如︰ safe_mode_exec_dir = D:/tmp/cmd 但是,我更推薦不要執行任何程式,那麼就可以指向我們網頁目錄︰ safe_mode_exec_dir = D:/usr/www (4) 安全模式下包含檔案 如果要在安全模式下包含某些公共檔案,那麼就修改一下選項︰ safe_mode_include_dir = D:/usr/www/include/ 其實一般php腳本中包含檔案都是在程式自己已經寫好了,這個可以根據具體需要設定。 (5) 控制php腳本能訪問的目錄 使用open_basedir選項能夠控制PHP腳本只能訪問指定的目錄,這樣能夠避免PHP腳本訪問 不應該訪問的檔案,一定程度上限制了phpshell的危害,我們一般可以設定為只能訪問網站目錄︰ open_basedir = D:/usr/www (6) 關閉危險函數 如果打開了安全模式,那麼函數禁止是可以不需要的,但是我們為了安全還是考慮進去。比如, 我們覺得不希望執行包括system()等在那的能夠執行命令的php函數,或者能夠檢視php訊息的 phpinfo()等函數,那麼我們就可以禁止它們︰ disable_functions = system,passthru,exec,shell_exec,popen,phpinfo 如果你要禁止任何檔案和目錄的操作,那麼可以關閉很多檔案操作 disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir, rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown 以上只是列了部分不叫常用的檔案處理函數,你也可以把上面執行命令函數和這個函數結合, 就能夠抵制大部分的phpshell了。 (7) 關閉PHP版本訊息在http頭中的洩漏 我們為了防止黑客獲取伺服器中php版本的訊息,可以關閉該訊息斜路在http頭中︰ expose_php = Off 比如黑客在 telnet www.12345.com 80 的時候,那麼將無法看到PHP的訊息。 (8) 關閉註冊全局變量 在PHP中提交的變量,包括使用POST或者GET提交的變量,都將自動註冊為全局變量,能夠直接訪問, 這是對伺服器非常不安全的,所以我們不能讓它註冊為全局變量,就把註冊全局變量選項關閉︰ register_globals = Off 當然,如果這樣設定了,那麼獲取對應變量的時候就要採用合理模式,比如獲取GET提交的變量var, 那麼就要用$_GET['var']來進行獲取,這個php程式員要注意。 (9) 打開magic_quotes_gpc來防止SQL注入 SQL注入是非常危險的問題,小則網站後台被入侵,重則整個伺服器淪陷, 所以一定要小心。php.ini中有一個設定︰ magic_quotes_gpc = Off 這個預設是關閉的,如果它打開後將自動把用戶提交對sql的查詢進行轉換, 比如把 ' 轉為 \'等,這對防止sql注射有重大作用。所以我們推薦設定為︰ magic_quotes_gpc = On (10) 錯誤訊息控制 一般php在沒有連接到數據庫或者其他情況下會有提示錯誤,一般錯誤訊息中會包含php腳本當 前的路徑訊息或者查詢的SQL語句等訊息,這類訊息提供給黑客後,是不安全的,所以一般伺服器建議禁止錯誤提 示︰ display_errors = Off 如果你卻是是要顯示錯誤訊息,一定要設定顯示錯誤的級別,比如只顯示警告以上的訊息︰ error_reporting = E_WARNING & E_ERROR 當然,我還是建議關閉錯誤提示。 (11) 錯誤日誌 建議在關閉display_errors後能夠把錯誤訊息記錄下來,便於查找伺服器營運的原因︰ log_errors = On 同時也要設定錯誤日誌存放的目錄,建議根apache的日誌存在一起︰ error_log = D:/usr/local/apache2/logs/php_error.log 以上內容轉自ouwsh's blog Tags: php.ini安全 工作 | 評論(0) | 引用(0) | 閱讀(39) 引用位址︰ 注意︰ 該位址僅在今日23:59:59之前有效 這幾天的事 [admin ] 1. 安裝完Zend Optimizer後,出現這樣的情況(error log中)︰ Failed loading /usr/local/Zend/lib/ZendExtensionManager.so: /usr/local/Zend/lib/ZendExtensionManager.so: failed to map segment from shared object: Permission denied 原因是由於SELinux的安全策略造成的,可以︰ 禁用SELinux,編輯/etc/selinux/config 並更改設定為 SELINUX=disabled 如果要啟用SELinux,可以更改安全級別,去掉對httpd的保護,使用system-config-securitylevel工具 如果還需要SELinux保護httpd,使用以下指令啟用對Zend Optimizer庫的權限︰ chcon -t httpd_modules_t `find /usr/local/Zend/lib -name \*.so` [SElinux]Security-Enhanced Linux (SELinux) is a version of the Linux kernel and utilities, which contains support for mandatory access controls based on the principle of least privilege. Primarily developed by the US National Security Agency (NSA) it was released to the open source development community. Other significant contributors include Network Associates, Secure Computing Corporation, and Tresys. ... (The definition of SElinux is from Google) 2. 突然很郁悶,VirtualHost 怎么不支援萬用字元和正則了。原來只能定義在ServerAlias,不能在ServerName 。 3. [Thu Apr 19 17:39:21 2007] [error] [client 72.232.8.226] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:) 好奇怪的日誌.原來是DFind這個web攻擊工具掃描後留下的痕跡。 DFind is one of the smallest security scanner tool and knowing the URL, you can download and check if your server can be compromised. 4. 準備從php4.1升到5.2 編譯php5.2時出現 “configure: error: The PCRE extension requires PCRE library version >= 6.6 然後 wget http://mirrors.kernel.org/fedora/core/6/source/SRPMS/pcre-6.6-1.1.src.rpm 安裝時 郁悶了。。。。 error: Failed dependencies: pcre = 4.5-3.2.RHEL4 is needed by (installed) pcre-devel-4.5-3.2.RHEL4.i386 然後 修改 yum源 vi /etc/yum.repos.d/CentOS-Base.repo and making the following changes [centosplus] gpgcheck=1 enabled=1 #yum update -y php ok了,先暫時升到5.1 5. 報錯為 Notice: Undefined index: 這只是一個notice,而不是警告 PHP.INI裡的error_reporting = E_ALL造成的,如果不希望看到這個提示,可以 error_reporting = E_ALL &~E_NOTICE。 |