PHP-XDebug配置

0x01 XDebug介紹php

  • XDebug是一個開放源代碼的PHP程序調試器,能夠用來跟蹤,調試和分析PHP的運行情況,功能強大,對審計有很大的幫助
  • XDebug實際上是一個.dll文件,一般放在PHP安裝目錄的ext/php_xdebug.dll。經過配置對應版本的php.ini文件使用
  • 當配置XDebug完成後,每次訪問一個頁面,都會在指定的目錄下生成一個文檔,文檔詳細的記錄了相關變量和函數的運行時間、源文件等等,可經過此文檔,得知PHP的運行情況、某個函數的效率高低等等

0x02 安裝配置Debughtml

  • 安裝
    • 若是在PHP的安裝目錄下沒有php_xdebug.dll文件,需到官網下載與本身本機PHP版本對應的XDebug,下載完成以後,放在對應版本/ext/下
  • 配置(修改配置文件後需重啓Apache服務纔可生效)
    • 修改對應的PHP版本配置(.ini)文件,配置以下
    • 參數解讀
      • 1937:將分析器輸出寫入到的目錄中,請確保將運行PHP的用戶對該目錄具備寫權限
      • 1938:當這個設置被設置爲!= 0時,Xdebug在錯誤狀況下生成的堆棧轉儲也會顯示最頂層範圍內的全部變量。注意,這可能會生成大量信息,所以在默認狀況下關閉
      • 1939:日誌的輸出文件夾,請確保將運行PHP的用戶對該目錄具備寫權限
      • 1940:XDebug的文件位置
      • 1941:在概要文件輸出目錄中建立文件
      • 1942:當這個設置設置爲1時,您能夠經過使用XDEBUG_PROFILE GET/POST參數來觸發概要文件的生成,或者設置一個名爲XDEBUG_PROFILE的cookie。這將把分析器數據寫入定義的目錄。爲了防止分析器爲每一個請求生成概要文件,您須要設置xdebug。profiler_enable爲0
      • 1943:打開自動追蹤。自動追蹤通常狀況下爲打開,能夠更方便的尋找函數
      • 1944:當這個設置被設置爲1時,Xdebug將在任何異常或錯誤被引起時顯示一個堆棧跟蹤,即便這個異常或錯誤被實際捕獲
      • 1945:當這個設置被設置爲1時,Xdebug將老是嘗試啓動一個遠程調試會話並嘗試鏈接到一個客戶端
      • 1946:這個開關控制Xdebug是否應該嘗試聯繫一個調試客戶端,這個客戶端在主機上監聽Xdebug設置的端口。若是沒法創建鏈接,腳本將繼續,就像該設置爲0同樣
      • 1947:只能是「dbgp」來表示調試器協議。DBGp協議是惟一受支持的協議
      • 1948:遠程調試客戶機的主機IP,這裏固定填寫127.0.0.1
      • 1949:遠程主機上Xdebug試圖鏈接到的端口
      • 1950:鏈接IDE的Key,可自定義
      • 其餘參數 xdebug.trace_format=0:日誌追蹤輸出目錄,0表明人可讀,1表明機器可讀,2表明html格式,用瀏覽器打開閱讀。通常使用0
      • xdebug.trace_options=0:記錄添加到文件中方式,0表明覆蓋,1表明追加,通常選擇覆蓋,由於隨着時間,文件愈來愈大,不方便審計
      • xdebug.collect_params=4:顯示內容詳細程度,這裏選擇4,顯示全部變量內容和變量名
      • xdebug.collect_return=1:顯示函數返回值,0爲不顯示
      • xdebug.collect_vars=1:顯示當前做用於使用了哪些變量,顯示變量名
      • xdebug.collect_assignments=1:添加一行顯示變量賦值

0x03 XDebug的解密功能瀏覽器

  • XDbug還有一個很強大的功能,它能夠自動跟隨函數和變量的‘腳步’,解密出加密過的內容
  • 經過網頁訪問加密過的文件,使XDebug生成日誌記錄文件,從而間接達到解密的目的
  • 使用記事本打開日誌記錄文件便可獲取解密後的內容
相關文章
相關標籤/搜索