使用Apache htaccess加密保護文件

介紹

不少的網站都在apche服務器上。apche提供了不少有用的功能。它容許咱們經過密碼加密訪問一些文件。也就是說若是不知道密碼,不能訪問這些頁面。這個功能十分簡單,但頗有用php

.htaccess

這裏有一個簡單的例子。他爲咱們提供了一些web的訪問信息: html

order allow,deny
allow from all

require valid-user

Authname "Password access required."

Authtype Basic

AuthUserFile /var/www/vhosts/idrsolutions.com/files/Cust/.htpasswd

這個配置作了兩件事。首先,它定義了web的訪問規則。定義了文件夾只容許經過登陸密碼訪問。其次,它定義了一個目錄 /var/www/vhosts/idrsolutions.com/files/Cust/.htpasswd 這個目錄支持爲了區分htaccess的管理文件。
爲了使用這個功能,你須要知道服務器與你網站相對應的路徑。在咱們的系統中。apache映射咱們的網站,http://www.xxku.net到一個實際路徑, /var/www/vhosts/xxku.net/ 下,因此http://www.xxku.net下的文件將會被要求密碼訪問。web

.htpasswd

此文件中包含登陸名和登陸密碼。以下: loginName: password (encrypted). 咱們來添加一行記錄,來測試咱們的文件保護: apache

mark:$6$7X9OefNE$3JxPhSS6gDWew1QZAJqS2JlUNt2Ly/r7uIMKpRkc1dsgRpaEEeYsiTYKDuk6.c9XjIFEZxXdgGTtQNhur2KyW/
如今當咱們訪問這個文件夾的時候會彈出密碼框提示咱們用於輸入來訪問頁面。若是沒有密碼,咱們將沒法訪問 咱們能夠經過php腳原本生成加密的密碼:
<?php
$ht_pass = '';
$pass = '';
$usr = '';

if (isset($_POST['password']))
if($_POST['password']!= "" AND $_POST['user']!= "" ) {
    $usr = $_POST['user'];
    $pass = $_POST['password'];
    $ht_pass = crypt($pass);
}
print "&lt;html&gt;&lt;head&gt;&lt;title&gt;Password Encryption&lt;/title&gt;&lt;/head&gt;&lt;body&gt;
&lt;form method=post action='htpass.php'&gt;
&lt;font size=5&gt;&lt;b&gt;.htpasswd File Password Encryption&lt;/b&gt;&lt;/font&gt;
&lt;br&gt;&lt;br&gt;Enter Username&lt;br&gt;
&lt;input name=user value=$usr size=20&gt;
&lt;br&gt;&lt;br&gt;Enter Password&lt;br&gt;
&lt;input name=password value=$pass size=20&gt;
&lt;br&gt;&lt;br&gt;&lt;input type=submit name=submit value='Encrypt Now'&gt;
";
if (isset($_POST['password']))
    if($_POST['password'] != "" AND $_POST['user'] != "" ) {
        print "&lt;br&gt;&lt;br&gt;.htpasswd File Code&lt;br&gt;$usr:$ht_pass";
    }
print "&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;";
?&gt;

能夠直接丟到php服務器運行。服務器

最後

你能夠使用這個簡單的方法控制你的網站訪問。若是想了解更多詳細信息,能夠到apache的[weblink url="http://httpd.apache.org/docs/2.2/howto/auth.html"]官方網站[/weblink]上看一下post

相關文章
相關標籤/搜索