Apache服务器的用户认证(转)_PHP
Apache
经常上网的读者会遇到这种情况:访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码来获取对资源的访问。这就是用户认证的一种技术。用户认证是保护网络系统资源的第一道防线,它控制着所有登录并检查访问用户的合法性,其目标是仅让合法用户以合法的权限访问网络系统的资源。基本的用户认证技术是“用户名+密码”。Apache是目前流行的Web服务器,可运行在Linux、Unix、Windows等操作系统下,它可以很好地解决“用户名+密码”的认证问题。Apache用户认证所需要的用户名和密码有两种不同的存贮方式:一种是文本文件;另一种是MSQL、Oracle、MySQL等数据库。下面以Linux的Apache为例,就这两种存贮方式,分别介绍如何实现用户认证功能,同时对Windows的Apache用户认证作简要的说明。
采用文本文件存储
这种认证方式的基本思想是:Apache启动认证功能后,就可以在需要限制访问的目录下建立一个名为.htaccess的文件,指定认证的配置命令。当用户第一次访问该目录的文件时,浏览器会显示一个对话框,要求输入用户名和密码,进行用户身份的确认。若是合法用户,则显示所访问的页面内容,此后访问该目录的每个页面,浏览器自动送出用户名和密码,不用再输入了,直到关闭浏览器为止。以下是实现的具体步骤:
以超级用户root进入Linux,假设Apache 1.3.12已经编译、安装到了/usr/local/apache目录中。缺省情况下,编译Apache时自动加入mod_auth模块,利用此模块可以实现“用户名+密码”以文本文件为存储方式的认证功能。
1.修改Apache的配置文件/usr/local/apache/conf/httpd.conf,对认证资源所在的目录设定配置命令。下例是对/usr/local/apache/htdocs/members目录的配置:
<Directory /usr/local/apache/htdocs /members>
Options Indexes FollowSymLinks
allowoverride authconfig
order allow,deny
allow from all
</Directory>
其中,allowoverride authconfig一行表示允许对/usr/local/apache/htdocs/ members目录下的文件进行用户认证。
2.在限制访问的目录/usr/local/apache/htdocs/members下建立一个文件.htaccess,其内容如下:
AuthName "会员区"
AuthType basic
AuthUserFile/usr/local/apache/members.txt
require valid-user
说明:文件.htaccess中常用的配置命令有以下几个:
1) AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的(见附图)。
2)AuthType命令:指定认证类型。在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5。
3) AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
4) AuthGroupFile命令:指定包含用户组清单和这些组的成员清单的文本文件。组的成员之间用空格分开,如:
managers:user1 user2
5) require命令:指定哪些用户或组才能被授权访问。如:
require user user1 user2(只有用户user1和user2可以访问)
requiresgroupsmanagers (只有组managers中成员可以访问)
require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)
3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/usr/local/apache/members.txt,每行内容格式为“用户名:密码”。
#cd /usr/local/apache/bin
#htpasswd -bc ../members.txt user1 1234
#htpasswd -b ../members.txt user2 5678
文本文件members.txt含有两个用户:user1,口令为1234;user2,口令为5678。注意,不要将此文本文件存放在Web文档的目录树中,以免被用户下载。
欲了解htpasswd程序的帮助,请执行htpasswd -h。
当用户数量比较少时,这种方法对用户的认证是方便、省事的,维护工作也简单。但是在用户数量有数万人,甚至数十万人时,会在查找用户上花掉一定时间,从而降低服务器的效率。这种情形,应采用数据库方式。
采用数据库存储
目前,Apache、PHP4、MySQL三者是Linux下构建Web网站的最佳搭档,这三个软件都是免费软件。将三者结合起来,通过HTTP协议,利用PHP4和MySQL,实现Apache的用户认证功能。
只有在PHP4以Apache的模块方式来运行的时候才能进行用户认证。为此,在编译Apache时需要加入PHP4模块一起编译。假设PHP4作为Apache的模块,编译、安装Apache到/usr/local/apache目录,编译、安装MySQL到/usr/local/mysql目录。然后进行下面的步骤:
1.在MySQL中建立一个数据库member,在其中建立一个表users,用来存放合法用户的用户名和密码。
1)用vi命令在/tmp目录建立一个SQL脚本文件auth.sql,内容为:
drop datebase if exists member;
create database member;
use member;
create table users (
username char(20) not null,
password char(20) not null,
);
insertsintosusers values("user1",password("1234"));
insertsintosusers values("user2",password("5678"));
2)启动MySQL客户程序mysql,执行上述SQL脚本文件auth.sql的命令,在表users中增加两个用户的记录。
#mysql -u root -pmypwd</tmp/auth.sql
2.编写一个PHP脚本头文件auth.inc,程序内容为:
<?php
function authenticate() {
Header('WWW-authenticate: basic realm="会员区"');
Header('HTTP/1.0 401 Unauthorized');
echo "你必须输入正确的用户名和口令。 ";
exit;
}
function CheckUser(, ) {
if ( == "" || == "") return 0;
= "SELECT username,password FROM usersswheresusername=' and password=password(')";
= mysql_connect('localhost', 'root', 'mypwd');
mysql_select_db('member',);
= mysql_query(, );
=mysql_num_rows();
mysql_close();
if (>0) {
return 1; //有效登录
} else {
return 0; //无效登录
}
}
?>
函数Authenticate()的作用是利用函数Header('WWW-authenticate: basic realm="会员区"'),向浏览器发送一个认证请求消息,使浏览器弹出一个用户名/密码的对话框。当用户输入用户名和密码后,包含此PHP脚本的URL将自动地被再次调用,将用户名、密码、认证类型分别存放到PHP4的三个特殊变量:、、,在PHP程序中可根据这三个变量值来判断是否合法用户。Header()函数中,basic表示基本认证类型,realm的值表示认证区域名称。
函数Header('HTTP/1.0 401 Unauthorized')使浏览器用户在连续多次输入错误的用户名或密码时接收到HTTP 401错误。
函数CheckUser()用来判断浏览器用户发送来的用户名、密码是否与MySQL数据库的相同,若相同则返回1,否则返回0。其中mysql_connect('localhost', 'root', 'mypwd')的数据库用户名root和密码mypwd,应根据自己的MySQL设置而改变。
3.在需要限制访问的每个PHP脚本程序开头增加下列程序段:
<?php
require('auth.inc');
if (CheckUser(,)==0) {
authenticate();
} else {
echo "这是合法用户要访问的网页。"; //将此行改为向合法用户输出的网页
}
?>
把需要向合法用户显示的网页内容放到else子句中,取代上述程序段的一行:
echo "这是合法用户要访问的网页。";
这样,当用户访问该PHP脚本程序时,需要输入用户名和密码来确认用户的身份。
Windows的Apache用户认证
1.采用文本文件存放用户名和密码时,其方法同前,但需要注意的是表示路径的目录名之间、目录名与文件名之间一律用斜线“/”分开,而不是反斜线“”。
2.采用MySQL数据库存放用户名和密码时,首先按下列方法将PHP 4.0.3作为Apache的模块来运行,然后按上述“采用数据库存储用户名和密码的用户认证”的方法完成。
1)下载Windows版的Apache 1.3.12、PHP 4.0.3、MySQL 3.2.32,将三个软件分别解压、安装到C:pache、C:PHP4、C:mysql目录。
2) C:PHP4SAPI目录有几个常用Web服务器的PHP模块文件,将其中php4apache.dll拷贝到Apache的modules子目录(C:pachemodules)。
3)修改Apache的配置文件C:pachenfhttpd.conf,增加以下几行:
LoadModule php4_module modules/ php4apache.dll
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
第一行使PHP4以Apache的模块方式运行,这样才能进行用户认证,后三行定义PHP脚本程序的扩展名。
4)在autoexec.bat文件的PATH命令中增加PHP4所在路径“C:PHP4”,重新启动电脑。
经我测试,2.0版本的apache不成

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans le système Windows 10, la politique de mot de passe est un ensemble de règles de sécurité visant à garantir que les mots de passe définis par les utilisateurs répondent à certaines exigences de force et de complexité. Si le système vous indique que votre mot de passe ne répond pas aux exigences de la politique de mot de passe, cela signifie généralement que votre mot de passe est défini. Le mot de passe ne répond pas aux exigences définies par les normes Microsoft en matière de complexité, de longueur ou de types de caractères, alors comment éviter cela ? Les utilisateurs peuvent trouver directement la politique de mot de passe sous la politique de l'ordinateur local pour effectuer des opérations. Jetons un coup d'œil ci-dessous. Solutions qui ne sont pas conformes aux spécifications de la politique de mot de passe : Modifier la longueur du mot de passe : Selon les exigences de la politique de mot de passe, nous pouvons essayer d'augmenter la longueur du mot de passe, par exemple en changeant le mot de passe d'origine à 6 chiffres en 8 chiffres ou plus. Ajoutez des caractères spéciaux : les politiques de mot de passe nécessitent souvent l'inclusion de caractères spéciaux tels que @, #, $, etc. je

Nos téléphones portables font désormais partie intégrante de nos vies dans la société moderne. Les connexions réseau sans fil sont également devenues un outil indispensable dans notre vie quotidienne. Cependant, nous sommes parfois confrontés à une telle situation : nous voulons nous connecter à d'autres appareils mais nous n'y parvenons pas, nous nous connectons au WiFi mais oublions le mot de passe. Comment obtenir facilement le mot de passe WiFi d'un téléphone mobile connecté ? Trouver le mot de passe WiFi enregistré sur le téléphone 1. Recherchez l'option « WiFi » dans les paramètres, recherchez et cliquez dessus, puis entrez dans l'interface des paramètres du téléphone « WiFi » pour accéder à la page des paramètres WiFi, option. 2. Ouvrez les détails du réseau WiFi connecté, recherchez le nom du réseau WiFi connecté et cliquez pour accéder à la page d'informations détaillées du réseau dans la page des paramètres WiFi. 3.

Pour ajouter un serveur à Eclipse, procédez comme suit : Créer un environnement d'exécution du serveur Configurer le serveur Créer une instance de serveur Sélectionner l'environnement d'exécution du serveur Configurer l'instance de serveur Démarrer le projet de déploiement du serveur

Tests de concurrence et débogage Les tests de concurrence et le débogage dans la programmation simultanée Java sont cruciaux et les techniques suivantes sont disponibles : Tests de concurrence : tests unitaires : isolez et testez une seule tâche simultanée. Tests d'intégration : tester l'interaction entre plusieurs tâches simultanées. Tests de charge : évaluez les performances et l'évolutivité d'une application sous une charge importante. Débogage simultané : points d'arrêt : suspendez l'exécution du thread et inspectez les variables ou exécutez le code. Journalisation : enregistrez les événements et l'état du fil. Trace de pile : identifiez la source de l’exception. Outils de visualisation : surveillez l'activité des threads et l'utilisation des ressources.

Les réseaux sans fil font désormais partie intégrante de nos vies dans la société moderne. Cependant, la sécurisation de votre réseau WiFi domestique devient également de plus en plus importante. La réinitialisation de votre mot de passe WiFi est une tâche critique pour garantir la sécurité du réseau. Pour protéger la sécurité de votre réseau domestique, cet article vous présentera comment réinitialiser votre mot de passe WiFi via votre routeur. Comprenez l'interface de connexion du routeur. Connectez-vous au routeur et ouvrez la page de gestion. Entrez le nom d'utilisateur et le mot de passe de l'administrateur. Recherchez le nom et le mot de passe WiFi actuels. Sélectionnez l'option de modification du mot de passe. le nouveau mot de passe WiFi. Définissez un mot de passe fort. Enregistrez les paramètres et quittez. Reconnectez l'appareil pour tester le nouveau réseau WiFi. Configurez d'autres paramètres de sécurité régulièrement pour connaître l'itinéraire.

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

Selon des informations publiées sur ce site Web le 23 juillet, ASUS a lancé une variété de produits au niveau serveur et station de travail alimentés par des processeurs AMD EPYC série 4004. Note de ce site : AMD a lancé en mai la plate-forme AM5 et les processeurs de la série EPYC 4004 à architecture Zen4, offrant jusqu'à 16 spécifications de cache 3DV cœurs. Serveur ASUSProER100AB6 ASUSProER100AB6 est un produit de serveur rack 1U équipé d'un processeur EPYC Xiaolong série 4004, adapté aux besoins d'IDC et des petites et moyennes entreprises. La station de travail ASUSExpertCenterProET500AB6 ASUSExpertCenterProET500AB6 est une
