專業滅鼠技術,快速除臭消毒,不留後患
保固期免費服務追蹤,居家守護不間斷
窗簾搬家好選擇,提供免費紙箱、完善估價不加收
可到府免費估價,歡迎來電預約

首頁  •  j2h 論壇 • 程式設計討論     • 

PHP 5.4 或以上重現 Register Globals

房東:小傑
發表時間:2020-10-22


很久以前的 PHP 預設開啟 Register Globals 選項, 這樣寫程式就很方便, 但這個方便也帶來安全性問題, 所以後來 PHP 預設會將 Register Globals 關閉, 對於一些要開啟 Register Globals 的程式, 在不修改程式碼的情況下, 還可以透過修改 php.ini 或 .htaccess 的方法解決。

但在 PHP 5.4 開始, PHP 開發團隊將 Register Globals 刪除, 所以很多要靠開啟 Register Globals 才能執行的程式, 在 PHP 5.4 或以後的版本便失效了, 我知道有些主機是為了讓舊 PHP 程式執行, 會不顧安全風險, 編譯舊版的 PHP 使用。

當然最好的方法還是修改舊有 PHP 程式碼, 不用靠 Register Globals 也能執行, 但修改程式碼也要花一點時間, 以下分享一個不用修改程式碼的解決方法, 對需要在短時間解決 Register Globals 問題是很好的臨時方案。



先在網頁目錄建立一個 PHP 檔案, 以下取名為 globals.php, 加入以下內容:

foreach ($_REQUEST as $key => $val) {
${$key} = $val;
}
?>



foreach ($_REQUEST as $key => $val) {
${$key} = $val;
}
?>
然後建立 .htaccess 檔案, 如果而經有 .htaccess, 可以直接開啟, 加入以下內容:

php_value auto_prepend_file ./globals.php



以上 .htaccess 的設定, 看到設定了 PHP 的 auto_prepend_file 選項, 指定網頁目錄下所以 PHP 程式在執行時, 會先載入 globals.php 檔案, 效果等同在每個 PHP 檔案加入一句 include ‘globals.php’ 一樣。

然後該目錄下的檔案便可以使用 Register Globals 的方法使用變數。



  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!

  • 1 樓住戶:jack
    發表時間:2020-10-22

    https://mrphp.com.au/blog/how-to-enable-register-globals-in-php-5/



     共 1 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: