亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ php教程 php手冊 Apacheサーバーのユーザー認証(移管)

Apacheサーバーのユーザー認証(移管)

Jun 21, 2016 am 09:14 AM
apache mysql php quot

apache|サーバー

インターネットを頻繁にサーフィンする読者は、このような狀況に遭遇することがあります。一部の Web サイト上の特定のリソースにアクセスすると、リソースにアクセスするためのユーザー名とパスワードを求めるダイアログ ボックスがブラウザーに表示されます。ユーザー認証を行う技術(shù)です。ユーザー認証は、ネットワーク システム リソースを保護するための最初の防御線であり、すべてのログインを制御し、アクセス ユーザーの正當性をチェックします。その目的は、正當な権限を持つ正當なユーザーのみがネットワーク システム リソースにアクセスできるようにすることです?;镜膜圣姗`ザー認証技術(shù)は「ユーザー名+パスワード」です。


Apache は現(xiàn)在、Linux、Unix、Windows およびその他のオペレーティング システムで実行できる人気の Web サーバーであり、「ユーザー名 + パスワード」認証の問題を十分に解決できます。 Apache ユーザー認証に必要なユーザー名とパスワードは 2 つの異なる方法で保存されます。1 つはテキスト ファイルで、もう 1 つは MSQL、Oracle、MySQL などのデータベースです。 LinuxのApacheを例に、これら2つのストレージ方式それぞれのユーザー認証機能の実裝方法を紹介するとともに、WindowsのApacheユーザー認証についても簡単に説明します。

テキスト ファイル ストレージを使用する

この認証方法の基本的な考え方は、Apache が認証機能を開始した後、アクセスを制限する必要があるディレクトリに .htaccess という名前のファイルを作成し、認証設(shè)定コマンドを指定することができます。 。ユーザーがこのディレクトリ內(nèi)のファイルに初めてアクセスすると、ブラウザーはユーザーの身元を確認するためにユーザー名とパスワードの入力を求めるダイアログ ボックスを表示します。正規(guī)のユーザーの場合は、アクセスしたページのコンテンツが表示されます。その後、アクセスしたディレクトリ內(nèi)のすべてのページに対して、ブラウザーがユーザー名とパスワードを自動的に送信するため、再入力する必要はありません。ブラウザが閉じられています。実裝の具體的な手順は次のとおりです:

Apache 1.3.12 がコンパイルされ、/usr/local/apache ディレクトリにインストールされていると仮定して、スーパー ユーザー root として Linux に入ります。デフォルトでは、Apache のコンパイル時に mod_auth モジュールが自動的に追加されます。このモジュールを使用すると、テキスト ファイルを保存方法として使用する「ユーザー名 + パスワード」認証機能を?qū)g裝できます。

1. Apacheの設(shè)定ファイル/usr/local/apache/conf/httpd.confを変更し、認証リソースが配置されているディレクトリの設(shè)定コマンドを設(shè)定します。次の例は、/usr/local/apache/htdocs/members ディレクトリの構(gòu)成です。



Options Indexes FollowSymLinks

allowoverride authconfig

order allowed,deny

allow from all



このうち、allowoverride authconfig行は、/usr/local/apache/htdocs/ members ディレクトリ內(nèi)のファイルに対してユーザー認証が許可されていることを示しています。

2. アクセス制限付きディレクトリ /usr/local/apache/htdocs/members に、次の內(nèi)容のファイル .htaccess を作成します:

AuthName "Member Area"

AuthType Basic

AuthUserFile/usr/local/apache /members.txt

require valid-user

説明: ファイル .htaccess でよく使用される設(shè)定コマンドは次のとおりです:

1) AuthName コマンド: 認証ゾーン名を指定します。ゾーン名は、認証を求めるダイアログ ボックスに表示され、ユーザーに表示されます (添付の図を參照)。

2) AuthType コマンド: 認証タイプを指定します。 HTTP 1.0 では、認証タイプは Basic の 1 つだけです。 HTTP1.1 には、MD5 などのいくつかの認証タイプがあります。

3) AuthUserFile コマンド: ユーザー名とパスワードを含むテキスト ファイルを 1 行に 1 組指定します。

4) AuthGroupFile コマンド: ユーザーグループのリストとこれらのグループのメンバーのリストを含むテキストファイルを指定します。グループのメンバーは次のようにスペースで區(qū)切られます:

マネージャ:user1 user2

5) require コマンド: どのユーザーまたはグループにアクセスを許可できるかを指定します。例:

require user user1 user2 (user1 と user2 のみがアクセス可能)

requiregroupsmanagers (グループマネージャーのメンバーのみがアクセス可能)

require valid-user (AuthUserFile で指定されたファイル內(nèi)の任意のユーザーがアクセス可能)

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 には次の 2 つが含まれていますユーザー: user1、パスワードは 1234; user2、パスワードは 5678。ユーザーによるダウンロードを避けるため、このテキスト ファイルを Web ドキュメントのディレクトリ ツリーに保存しないでください。

htpasswd プログラムのヘルプについては、htpasswd -h を?qū)g行してください。

ユーザー數(shù)が比較的少ない場合、この方法はユーザー認証に便利で手間がかからず、メンテナンス作業(yè)も簡単です。しかし、ユーザー數(shù)が數(shù)萬人、さらには數(shù)十萬人になると、ユーザーを見つけるのにある程度の時間がかかり、サーバーの効率が低下します。この場合、データベース方式を使用する必要があります。

データベースストレージの使用

現(xiàn)在、Apache、PHP4、および MySQL は、Linux で Web サイトを構(gòu)築するための最良のパートナーです。これら 3 つのソフトウェアはすべてフリー ソフトウェアです。この 3 つを組み合わせて、PHP4 と MySQL を HTTP プロトコル経由で使用して、Apache のユーザー認証機能を?qū)g裝します。

ユーザー認証はPHP4をApacheモジュールとして実行する場合のみ行えます。このため、Apache をコンパイルする場合は、PHP4 モジュールを追加して一緒にコンパイルする必要があります。 Apache のモジュールとして PHP4 を使用することを想定し、Apache を /usr/local/apache ディレクトリにコンパイルしてインストールし、MySQL を /usr/local/mysql ディレクトリにコンパイルしてインストールします。次に、次の手順に進みます:

1. MySQL でデータベース メンバーを作成し、その中に正當なユーザーのユーザー名とパスワードを保存するテーブル users を作成します。

1) vi コマンドを使用して、/tmp ディレクトリに SQL スクリプト ファイル auth.sql を作成します。內(nèi)容は、

メンバーが存在する場合はデータベースを削除する;

データベース メンバーを作成する;

メンバーを使用する;

テーブルを作成するです。 users (

ユーザー名 char(20) not null,

パスワード char(20) not null,

);

insertsintosusersvalues("user1",password("1234"));

insertsintosusersvalues("user2 ",password( "5678"));

2) MySQLクライアントプログラムmysqlを起動し、上記SQLスクリプトファイルauth.sqlのコマンドを?qū)g行し、usersテーブルに2つのユーザーレコードを追加します。

#mysql -u root -pmypwd</tmp/auth.sql

2. PHPスクリプトヘッダーファイルauth.incを書きます プログラム內(nèi)容は、


functionauthenticate() {

Header ( 'WWW-authenticate: Basic realm="メンバーエリア"');

Header('HTTP/1.0 401 Unauthorized');

echo "正しいユーザー名とパスワードを入力する必要があります。 ";

exit;

}

function CheckUser(, ) {

if ( == "" || == "") return 0;

= "SELECT username,password FROM usersswheresusername='' andpassword=password('')";

= mysql_connect('localhost', 'root', 'mypwd');

mysql_select_db('member',);

= mysql_query(, );

= mysql_num_rows();

if (>0) {

return 1; //有効なログイン

} else {

return 0; //無効なログイン

}

}

?>

関數(shù)Authenticate('WWW)を使用する-authenticate: Basic realm="Member Area"') は、ブラウザに認証要求メッセージを送信し、ブラウザにユーザー名/パスワードのダイアログ ボックスをポップアップさせます。ユーザーがユーザー名とパスワードを入力すると、この PHP スクリプトを含む URL が自動的に再度呼び出され、ユーザー名、パスワード、認証タイプが PHP プログラムの 3 つの特殊変數(shù)に保存されます。これら 3 つの変數(shù)値を使用して、ユーザーが正當であるかどうかを判斷します。 Header() 関數(shù)では、basic は基本認証タイプを表し、realm の値は認証ゾーン名を表します。

Function Header('HTTP/1.0 401 Unauthorized') により、ブラウザ ユーザーは間違ったユーザー名またはパスワードを連続して複數(shù)回入力すると、HTTP 401 エラーが発生します。

関數(shù)CheckUser()は、ブラウザユーザーが送信したユーザー名とパスワードがMySQLデータベースのものと同じかどうかを判定するために使用され、同じであれば1を返し、そうでなければ0を返します。 mysql_connect('localhost', 'root', 'mypwd') のデータベース ユーザー名 root とパスワード mypwd は、獨自の MySQL 設(shè)定に従って変更する必要があります。

3. アクセスを制限する必要がある各 PHP スクリプトの先頭に、次のプログラム セグメントを追加します:


require('auth.inc');

if (CheckUser(,)==0) {

authenticate();

} else {

echo "これは正規(guī)のユーザーがアクセスしたいWebページです。" //この行を正規(guī)のユーザーへのWebページ出力に変更します

}

?>

;正規(guī)のユーザーによって表示される Web ページのコンテンツは、上記のプログラム セグメントの 1 行を置き換えて else 句に配置されます。たとえば、ユーザーが 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 をダウンロードし、3 つのソフトウェアをそれぞれ C: pache、C: PHP4、および C: mysql ディレクトリにインストールします。

2) C:PHP4SAPI ディレクトリには、一般的に使用される Web サーバー用のいくつかの PHP モジュール ファイルが含まれています。php4apache.dll を Apache の modules サブディレクトリ (C: pachemodules) にコピーします。

3) Apache の設(shè)定ファイル C:pache nfhttpd.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モジュールとして実行するもので、最後の3行はPHPスクリプトプログラムの拡張子を定義しています。

4) autoexec.batファイルのPATHコマンドにPHP4があるパス「C:PHP4」を追加し、コンピュータを再起動します。


私のテストの後、Apache のバージョン 2.0 は動作しません



このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ランプスタックを超えて:現(xiàn)代のエンタープライズアーキテクチャにおけるPHPの役割 ランプスタックを超えて:現(xiàn)代のエンタープライズアーキテクチャにおけるPHPの役割 Jul 27, 2025 am 04:31 AM

phpisStillRelevantinModernenterpriseenvironments.1.modernphp(7.xand8.x)は、パフォーマンスゲイン、stricttyping、jit compilation、andmodernsyntaxを提供し、scaleApplications.2.phpintegrateSeffeCtiveTiveliveTiveliveTiveliveTiveTiveTiveliveTiveStures、

PHPでのオブジェクトリレーショナルマッピング(ORM)パフォーマンスチューニング PHPでのオブジェクトリレーショナルマッピング(ORM)パフォーマンスチューニング Jul 29, 2025 am 05:00 AM

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

PHPとrabbitmqを使用した回復(fù)力のあるマイクロサービスを構(gòu)築します PHPとrabbitmqを使用した回復(fù)力のあるマイクロサービスを構(gòu)築します Jul 27, 2025 am 04:32 AM

柔軟なPHPマイクロサービスを構(gòu)築するには、RabbitMQを使用して非同期通信を?qū)g現(xiàn)する必要があります。 2。信頼性を確保するために、永続的なキュー、永続的なメッセージ、リリース確認、手動ACKを構(gòu)成します。 3.指數(shù)バックオフ再試行、TTL、およびデッドレターキューセキュリティ処理の障害を使用します。 4.監(jiān)督などのツールを使用して、消費者プロセスを保護し、ハートビートメカニズムを有効にしてサービスの健康を確保します。そして最終的に、システムが障害で継続的に動作する能力を?qū)g現(xiàn)します。

PHP用の生産対応Docker環(huán)境の作成 PHP用の生産対応Docker環(huán)境の作成 Jul 27, 2025 am 04:32 AM

正しいPHP Basicイメージを使用し、安全で最適化されたDocker環(huán)境を構(gòu)成することが、生産を?qū)g現(xiàn)するための鍵です。 1.攻撃面を減らしてパフォーマンスを向上させるための基本畫像としてPHP:8.3-fpm-alpineを選択します。 2.カスタムPHP.iniを介して危険な機能を無効にし、エラーディスプレイをオフにし、OpCacheとJITを有効にしてセキュリティとパフォーマンスを強化します。 3. NGINXを逆プロキシとして使用して、機密ファイルへのアクセスを制限し、PHPリクエストをPHP-FPMに正しく転送します。 4.マルチステージ最適化畫像を使用して開発依存関係を削除し、非ルートユーザーを設(shè)定してコンテナを?qū)g行します。 5. CRONなどの複數(shù)のプロセスを管理するためのオプションの監(jiān)督。 6.展開前に機密情報漏れがないことを確認します

PHPの內(nèi)部ガベージコレクションメカニズムに深く潛ります PHPの內(nèi)部ガベージコレクションメカニズムに深く潛ります Jul 28, 2025 am 04:44 AM

PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領(lǐng)域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。

Readonlyプロパティを備えたPHPに不変のオブジェクトを構(gòu)築します Readonlyプロパティを備えたPHPに不変のオブジェクトを構(gòu)築します Jul 30, 2025 am 05:40 AM

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

サーバーレス革命:BREFを使用してスケーラブルなPHPアプリケーションを展開します サーバーレス革命:BREFを使用してスケーラブルなPHPアプリケーションを展開します Jul 28, 2025 am 04:39 AM

BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。

PHPを機械學習モデルと統(tǒng)合します PHPを機械學習モデルと統(tǒng)合します Jul 28, 2025 am 04:37 AM

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()

See all articles