Win2003配置8防禦PHP木馬攻擊的技巧

PHP本身再老版本有一些問題,比如在 php4.3.10和php5.0.3以前有一些比較嚴重的bug,所以推薦使用新版。另外,目前鬧的轟轟烈烈的SQL   Injection也是在PHP上有很多利用方式,所以要保證
  安全,PHP代碼編寫是一方面,PHP的配置更是非常關鍵。
  我們php手手工安裝的,php的默認配置文件在/usr/local/apache2/conf/php.ini,我們最主要就是要配置php.ini中的內容,讓我們執行  php能夠更安全。整個PHP中的安全設置主要是爲了防止phpshell和SQLInjection的攻擊,一下我們慢慢探討。我們先使用任何編輯工具打開  /etc/local/apache2/conf/php.ini,如果你是采用其他方式安裝,配置文件可能不在該目錄。
  (1) 打開php的安全模式
  php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函數,比如system(),
  同時把很多文件操作函數進行了權限控制,也不允許對某些關鍵文件的文件,比如/etc/passwd,但是默認的php.ini是沒有打開安全模式的,我們把它打開:
  safe_mode = on
  (2) 用戶組安全
  當safe_mode打開時,safe_mode_gid被關閉,那麽php腳本能夠對文件進行訪問,而且相同組的用戶也能夠對文件進行訪問。
  建議設置爲:quanyo.com
  safe_mode_gid = off
  如果不進行設置,可能我們無法對我們伺服器網站目錄下的文件進行操作了,比如我們需要
  對文件進行操作的時候。
  (3) 安全模式下執行程序主目錄
  如果安全模式打開了,但是卻是要執行某些程序的時候,可以指定要執行程序的主目錄:
  safe_mode_exec_dir = D:/usr/bin
  一般情況下是不需要執行什麽程序的,所以推薦不要執行系統程序目錄,可以指向一個目錄,
  然後把需要執行的程序拷貝過去,比如:quan yo.com
  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
  注意:給文件必須允許apache用戶的和組具有寫的權限。
  MYSQL的降權運行
  新建立一個用戶比如mysqlstart
  net user mysqlstart fuckmicrosoft /add 
  net localgroup users mysqlstart /del 
  不屬于任何組
  如果MYSQL裝在d:\mysql ,那麽,給 mysqlstart 完全控制 的權限
  然後在系統服務中設置,MYSQL的服務屬性,在登錄屬性當中,選擇此用戶 mysqlstart 然後輸入密碼,確定。
  重新啓動 MYSQL服務,然後MYSQL就運行在低權限下了。
  如果是在windos平台下搭建的apache我們還需要注意一點,apache默認運行是system權限,
  這很恐怖,這讓人感覺很不爽.那我們就給apache降降權限吧。 
  net user apache fuckmicrosoft /add 
  net localgroup users apache /del 
  ok.我們建立了一個不屬于任何組的用戶apche。 
  我們打開計算機管理器,選服務,點apache服務的屬性,我們選擇log on,選擇this account,我們填入上面所建立的賬戶和密碼,
  重啓apache服務,ok,apache運行在低權限下了。 
  實際上我們還可以通過設置各個文件夾的權限,來讓apache用戶只能執行我們想讓它能幹的事情,給每一個目錄建立一個單獨能讀寫的用戶。
  這也是當前很多虛擬主機提供商的流行配置方法哦,不過這種方法用于防止這裏就顯的有點大材小用了。
更多相關文章
  • 解決方案: 禁用這些方式. 如果你使用的是Apache, 在各虛擬主機的配置文件裏添加如下語句: 在每個網站的虛擬主機配置文件中都填入這些設置. vim /usr/local/apache2/conf/extra/httpd-vhost.conf RewriteEngine on RewriteCo ...
  • 特洛伊木馬是如何工作的 一般的木馬程序都包括客戶端和服務端兩個程序,其中客戶端是用于攻擊者遠程控制植入木馬的機器,伺服器端程序即是木馬程序他所做的第一步是要把木馬的伺服器端.攻擊者要通過木馬攻擊你的系統,程序植入到你的電腦裏面. 目前木馬入侵的主要途徑還是先通過一定的方法把木馬執行文件弄到被攻擊者的 ...
  •     作爲站長,爲了網站的正常運行,付出了很多,同時苦惱的事情也很多,如何提高網站的用戶體驗性.提高網站的訪問速度以及網站的安全問題等,都是需要考慮的事情.從目前全世界範圍內,Web 安全已經成爲最爲互聯網信息安全整體中最重要的問題之一.如何保護網站不受到別人(如競爭對手)的刻意破壞?安全狗軟件可 ...
  • 錯誤日志2g,打開看下錯誤提示:[Wed Jun 18 17:12:15 2014] [error] [client 183.136.216.78] PHP Notice: fwrite() [function.fwrite]: send of 8192 bytes failed with errn ...
  • ..程序體(5) fqys=request.servervariables("query_string") dim nothis(18) nothis(0)="net user" nothis(1)="xp_cmdshell" nothis ...
  • Web伺服器安全服務,伺服器防攻擊,伺服器防木馬,伺服器權限配置-網站安全服務
    網站安全服務    QQ: 聯系  285691605 網站地址 http://blog.bypat.com    Bypat 安全維護服務針對與網站被挂馬,網站被挂黑鏈,首頁被篡改,網站被黑客入侵,網站被攻擊,網站被挂彈窗,打開自己網站時,會自動跳轉到賭博網站,網站自動 收錄一些惡意的百度快照,網 ...
  • 防範“ARP欺騙”木馬病毒
      關于防範“ARP欺騙”木馬病毒的新通知 ( 2006-08-14 11:08:11 ) 近期,出現一種新版的“ARP欺騙”木馬病毒在互聯網上迅速擴散,我校校園網內用戶及家屬區用戶均有計算機感染了此病毒,表現爲用戶頻繁斷網. IE 浏覽器頻繁出錯以及一些常用軟件出現故障等問題.目前,已知傳奇遊戲的 ...
  • 最近把幾個PHP網站的程序備份到本地,准備與本地的發布版的svn做內容整合.發現有一些non-versioned的程序文件,仔細查看,是一些木馬程序.我在本地測試了這些木馬程序,可以讀取所有硬盤的文件,可以隨意修改文件,下載任意硬盤位置的文件,上傳文件到主機任意硬盤位置,可以說接近在主機上管理文件了 ...
一周排行
  • 1.輪詢(默認)   每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除.  2.weight 指定輪詢幾率,weight和訪問比率成正比,用于後端伺服器效能不均的情況.  例如:   ...
  • 在應用程序開發中,如果內容過長,想截取一定長度字符,然後補充"....."jstl1.1引入了一個fn.tld的標簽,用于處理字符,如獲得字符length,substring,indexof,en ...
  • # -*- coding: utf-8 -*- ''' Created on 2013年12月9日 @author: hhdys ''' import os import mysql.connector config ...
  • A member of a class or trait is abstrat if the member does not have a complete definition in the class. Scal ...
  • 原理:將圖片轉換爲YCbCr模式,在圖片中尋找圖片色值像素,如果在皮膚色值內的像素面積超過整個畫面的1/3,就認爲是黃色圖片. 申明:簡單場景還是夠用了,稍微複雜一點就不准確了,例如:整幅畫面是人的頭像,皮膚色值的像 ...
  • http://blog.csdn.net/yorhomwang歡迎繼續關注我的博客
  • 關于Java對相對目錄的文件讀寫和調用方法的一些總結首先要講Java路徑Java中使用的路徑,分爲兩種:絕對路徑和相對路徑.具體而言,又分爲四種:1.本地系統的絕對路徑:如:  windows: C:\abc\ pr ...
  • swift詳解之十五------------NSThread線程同步鎖
    NSThread線程同步鎖上小節用NSThread實現讀取網路圖片 , 這節用NSThre ...
  • MEM_ARGS="-Xms2048M -Xmx2048M -Xmn512M -Xss256k  -Dweblogic.threadpool.MinPoolSize=60 -Dweblogic.thread ...
  • 備忘錄設計模式
    備忘錄(Memento Pattern)模式 一:概念  1:定義:      備忘錄對象 ...