關於部落格
電腦教學、學習、教師網誌
  • 181674

    累積人氣

  • 39

    今日人氣

    0

    追蹤人氣

xampp security setting manual

XAMPP - 加強安全性
2007-02-09 10:54:53 XAMPP

這篇中文版的 XAMPP for Windows 已經講得很清楚,XAMPP 的出發點是提供一個系統開發的環境,並不適合拿來當作實際上線的系統。我不解地想要尋找原因,才發現其實他所警示的安全漏洞都不是什麼難以克服的大問題,不外乎就是一些套件預設的設置沒有密碼保護等等。
1. MySQL 的系統管理者 (root) 預設沒有密碼。
2. 可以透過任何網路來存取 MySQL。
3. 可以透過任何網路來存取 PhpMyAdmin
4. 可以透過任何網路來存取所有範例。
5. Mercury 和 FileZIlla的使用者都是已知的。

按照說明,只要執行了http://127.0.0.1/security的安全加強程序,就能夠幫助你設定MySQL root密碼,並且將 XAMPP 的系統預設網頁加上 .htaccess 存取保護。

如果打算手動加強安全性,不妨參考一下我的建議:

Setup MySQL root password


  1. 開啟cmd視窗
  2. 改變路徑到 (XAMPP)/mysql/bin
  3. 進入 MySQL CLI
    > mysql -u root

  4. 設定root權限與密碼
    mysql> grant all privileges on *.* to root@localhost
        identified by 'PASSWORD';
    記得上面的PASSWORD是你要設定的密碼,行末一定要加分號以執行上述命令
  5. 使上述權限設定生效,或者重新啟動 MySQL 服務亦可
    mysql> flush privilege;

  6. 離開CLImysql> exit


Setup PhpMyAdmin


  1. 編輯 (XAMPP)/phpMyAdmin/config.inc.php
  2. 修改
    $cfg['PmaAbsoluteUri'] = "http://localhost/phpmyadmin/";

  3. 修改
    $cfg['Servers'][$i]['auth_type'] = "AUTH_TYPE";
    上述的AUTH_TYPE可以是 "http" 或 "cookie",其實兩者差不多,差異在登入係用瀏覽器 http_authentication 或是網頁畫面


Protect XAMPP webpages


  1. 複製 (XAMPP)/htdocs/forbidden/目錄下的 .htaccess 和
    .htpasswd 檔案到 (XAMPP)/htdocs/xampp
  2. 修改 .htaccess 檔案
    AuthUserfile "../htdocs/xampp/.htpasswd"

  3. 修改 .htpasswd 檔案
    帳號:密碼
    須注意,上述的存取帳號與密碼都是未編碼的文字,要注意被他人以檔案系統開啟探知密碼內容
  4. 移除 (XAMPP)/htdocs/ 目錄內不必要的網頁


Apache VirtualHost


在 Apache 內,可以於同一個 IP 設置多組網站 Hosts,善用 VirtualHost 的功能,可以幫你靈活集中調用主機,並且利用 hostname 將網站資源放入分站,減少網站路徑長度,防止有心人窺視你的網頁文件結構。

Apache Alias


在 httpd.conf 文件中尋找 "IfModule alias_module" 子段落,將一些平常少用或想要限定使用的路徑設置成 Alias,好處是你可以不用重新命名檔案目錄,卻可以將網站路徑跨越層級指向特定地方。譬如說你可以指定
Alias /tHiS.mY.pHPMyadMin /phpmyadmin
然後搭配上面 phpMyAdmin 的說明將 PmaAbsoluteUri 存取路徑指向 "/tHiS.mY.pHPMyadMin"。

由於 Alias 是大小寫對應的 (case-sensitive),所以除非有人猜中你那個大小寫亂拼的路徑,否則無法正確開啟 phpmyadmin 路徑。反之若是你只是重新命名 phpmyadmin 為 pHPMyadMin,因為 URI 是 case-insensitive 不分大小寫,所以這種混編大小寫完全沒有效用。

Apache URL Rewrite


高段班的做法,是設定 Apache 的 url_rewrite rules,利用 regular expression 將存取要求改寫到不同的目標。
  1. 先得要取消下面這行開頭的備註符號以載入模組
    LoadModule rewrite_module modules/mod_rewrite.so

  2. 在 Directory 或 VirtualHost 裡面加入以下設定:
    〈IfModule mod_rewrite.c〉
        RewriteEngine On
        RewriteRule ^/([^/]+)  /index.php?
        〈/IfModule〉

請注意上述範例中的角括弧為了顯示都改用全形,請自行改回來。有關 RewriteRule 的各種用法,請自行去查閱網路上的說明(好一個推卸責任的說法),這裡提供幾個簡單的 rule 當作參考。
  • RewriteRule ^/ABC/([^/]+) /bin/script.php?ABC=$1
  • RewriteRule ^/script/([^/]+)/([^/]+).html /data.php?id=$1&page=$2
相簿設定
標籤設定
相簿狀態