使用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

相关文章
相关标签/搜索