Apache/安全性
外觀
< Apache
許多機器人試圖破解某些資料庫(例如透過 PhpMyAdmin 或 WordPress)。為了防止它們,我們可以利用幾個標準。
例如,要禁止檢視沒有索引檔案的目錄(例如:.html、.php),請新增程式碼:Options -Indexes。
只授權兩個 IP 讀取目錄
<Directory /usr/share/phpmyadmin/>
<IfModule mod_authz_core.c>
<RequireAny>
Require all denied
Require ip 127.0.0.1
Require ip 127.0.0.2
</RequireAny>
</IfModule>
</Directory>
<Directory /usr/share/phpmyadmin/>
<IfModule mod_access_compat.c>
deny from all
allow from 127.0.0.1
allow from 127.0.0.2
</IfModule>
</Directory>
如果授權範圍與禁止範圍有一些地址重疊,最好指定它們的優先順序(.htaccess 檔案中的行順序不會改變任何內容)
order allow, deny- 先從授權開始,然後開始禁止,以免禁止先前允許的操作。
order deny, allow- 相反的做法限制較小。
<Directory /usr/share/phpmyadmin/>
<IfModule mod_authz_core.c>
Require all granted
Require not ip 127.0.0.1
</IfModule>
</Directory>
<Directory /usr/share/phpmyadmin/>
<IfModule mod_access_compat.c>
order allow,deny
allow from all
deny from 127.0.0.1
</IfModule>
</Directory>
必須允許在 Apache 設定中修改身份驗證引數。
父目錄的 AllowOverride 指令必須包含 AuthConfig[3] 選項。
要放在 .htaccess 中的指令是
AuthType basic- 普遍採用的身份驗證型別,但安全性較差。
AuthName "我的訊息"- 作為對話方塊中邀請的文字。
AuthUserFile /etc/apache2/my_passwd- 密碼檔案路徑。
Require valid-user- 指定需要有效帳戶才能訪問資料夾。
我們也可以使用 Require user toto sasa 來只授權兩個帳戶 toto 和 sasa。
basic 身份驗證型別使用未加密的密碼。
還存在其他一些更安全的型別,例如 digest,建議與 HTTPS 結合使用。
第一個請求將傳送到受保護的目錄,並會導致顯示對話方塊,使用者應在其中進行身份驗證(使用登入名和密碼)。
- 如果密碼無效,則會再次顯示對話方塊。
- 如果有效,則瀏覽器可以記錄它,並且直到下次重新啟動之前都不會再次詢問。
以下命令建立一個名為 的密碼檔案,其中包含一個使用者 toto
htpasswd -c /home/user/www/.htpasswd toto
要新增或修改使用者
htpasswd /home/user/www/.htpasswd sasa
然後,使用以下命令告訴 .htaccess .htpasswd 檔案的路徑
AuthName "Protected page"
AuthType Basic
AuthUserFile "/home/user/www/.htpasswd"
Require valid-user