Rumah php教程 php手册 Linux系统Apache用户授权和访问控制

Linux系统Apache用户授权和访问控制

Jun 21, 2016 am 09:00 AM
directory htaccess httpd limit

用户授权和访问控制

你也许在访问某些网站时会遇到过这样的情况,当你点击某个连接时,你的浏览器会弹出一个身份验证的对话框,要求输入账号及密码,如果没有,就无法继续浏览了。有人会以为这是用CGI做出来的,其实不然,这是WWW服务器的用户授权和访问控制机制在发挥作用。

你是否还记得在设置Apache服务环境的过程中,有……..<.>这个指令,可以对不同的目录提供不同的保护。但是这样的设定,需要重新启动服务器才会生效,灵活性较差,通过AccessFile指令指定访问控制文件的方式则比较灵活,在Apache服务器中设置用户的访问控制权限步骤如下:

1、首先对httpd.conf文件进行设置如下:

<ccid_code><directory> # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Options Includes FollowSymLinks Indexes AllowOverride All //*注意AllowOverride 一定要设置为All,这样后面的.htaccess文件才会起作用 <limit get post options propfind> Order allow,deny Allow from all </limit> # <limit put delete patch proppatch mkcol copy move lock unlock> # Order deny,allow # Deny from all # </limit> </directory> #指定配置存取控制权限的文件名称 AccessFileName .htaccess</ccid_code>
Salin selepas log masuk

2、创建.htaccess文件內容

要控制某目录的访问权限必须建立一访问控制文件,文件名前面指定的“.htaccess”,其内容格式如下:

<ccid_code>AuthUserFile 用户帐号密码文件名 AuthGroupFile 群组帐号密码文件名 AuthName 画面提示文字 AuthType 验证方式 <limit get> 密码验证方式 </limit> 用户验证方式AuthType目前提供了Basic和Digest两种。 密码检验设定方法与httpd.conf中的相关设定相同。 具体例子如下: AuthUserFile /etc/secure.user AuthName 安全认证中心 AuthType Basic <limit get> require valid-user </limit></ccid_code>
Salin selepas log masuk

3、建立用户密码文件

如果你是第一次创建用户密码,命令格式如下:

htpasswd -c 密码文件名 用户名称

在上面的例子中,我们将用户密码文件放到了/etc/secure.user文件中,所以这里应按照如下进行操作:

htpasswd -c /etc/secure.user sword

程序会提示你输入两次用户的口令,然后用户密码文件就已经创建sword这个用户也添加完毕了。

如果要向密码文件中添加新的用户,按照如下命令格式进行操作:

htpasswd 密码文件 用户名称

这样,重新启动httpd后,进行该WEB目录时就会有一个对话框弹出,要求输入用户名及用户口令了。

4、如何减少访问控制对Apache性能的影响

频繁的使用访问控制会对Apache的性能产生较大的影响,那么,如何才能减少这种影响呢?最简单也是最有效的方法之一就是减少.htaccess文件的数目,这样可以避免Apache对每一个请求都要按照.htaccess文件的内容进行授权检查。它不仅在当前的目录中查找.htaccess文件,它还会在当前目录的父目录中查找。

/

/usr

/usr/local

/usr/local/etc

/usr/local/etc/httpd

/usr/local/etc/httpd/htdocs

/usr/local/etc/httpd/htdocs/docs

通常在根目录下没有htaccess文件,但Apache仍然会进行例行检查以确定该文件确实不存在。这是影响很影响服务器工作效率的事情。下面的方法可以消除这个讨厌的过程:将AllowOverride选设置为None,这样Apache就会检查.htaccess文件了。将/根目录的 AllowOverride选项设为None,只将需要进行访问控制的目录下的AllowOverride选项设置为all,如下面的例子中将/根目录的 AllowOverride 选项关闭了,只打开了/usr/local/etc/httpd/htdocs目录下的AllowOerride选项,这样,系统就只在 /usr/local/etc/httpd/htdocs中检查.htaccess文件,达到的提高服务效率的目的。

<ccid_code><directory></directory> AllowOverride None  <directory> AllowOverride All </directory></ccid_code>
Salin selepas log masuk

如果除了根目录以外,还有其它存放WWW文件的目录,你也可以采取同样的方法进行设置。比如:如果你使用UserDir来允许用户访问自己的目录,AllowOverride的设置如下:

<ccid_code><directory> AllowOverride FileInfo Indexes IncludesNOEXEC </directory></ccid_code>
Salin selepas log masuk

5、防止用户访问指定的文件

系统中有一些文件是不适宜提供给WWW用户的,如:.htaccess、htpasswd、*.pl等,可以用达到这个目的:

<ccid_code><files .htaccess> order allow,deny deny from all </files></ccid_code>
Salin selepas log masuk

用户访问控制三个.htaccess文件、.htpasswd和.htgroup(用于用户授权) ,为了安全起见,应该防止用户浏览其中内容,可以在httpd.conf中加入以下内容阻止用户对其进行访问:

<ccid_code><files> Order deny, allow Deny from all </files></ccid_code>
Salin selepas log masuk

这样这三个文件就不会被用户访问了。

6、限制某些用户访问特定文件

可以对目录进行约束,要限制某些用户对某个特定文件的访问可以使用,比如:不允许非domain.com域内的用户对/prices/internal.html进行访问,可以用如下的设置:

<ccid_code><location> order deny,allow deny from all allow from .domain.com </location></ccid_code>
Salin selepas log masuk

如果你要授于相应权限的机器没有公开的域名,请在你的/etc/hosts文件中,将其IP地址映射到某个指定的名称,然后在Location中对其进行设置,否则该选项是不起作用的。

7、只接受来自特定链接的访问

例如,只让所有来自 http://www.sina.com.cn/* 的链接的用户进入此目录,由其它链接来的访客都不得进入; " * "表示此网站底下所有的链接。其中的 http://www.sina.com.cn/* 也可以是:http://202.106.184.200/* 或是指定文件 http://www.sina.com.cn/news.html

.htaccess文件的内容如下:

<ccid_code>AuthUserFile /dev/null AuthGroupFile /dev/null AuthName ExampleAllowFromSpecificURL AuthType Basic <limit get> order deny,allow deny from all referer allow from http://www.sina.com.cn/* </limit></ccid_code>
Salin selepas log masuk



Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengguna dan Komputer Direktori Aktif Tiada [Diperbaiki dalam 3 Cara] Pengguna dan Komputer Direktori Aktif Tiada [Diperbaiki dalam 3 Cara] Apr 20, 2023 pm 01:25 PM

Kehilangan Pengguna dan Komputer Direktori Aktif (ADUC) adalah salah satu isu paling mengecewakan yang dilaporkan oleh ramai pengguna Windows Pro. ADUC ialah snap-in MMC yang luar biasa yang membolehkan pentadbir mengurus Microsoft Active Directory. Walau bagaimanapun, atas sebab tertentu ia tiada dalam edisi Windows Server atau Enterprise/Pro. Mari kita lihat dengan lebih dekat mengapa ia hilang dan cara kita boleh membetulkannya. Adakah Windows 11 mempunyai Active Directory? Active Directory berguna untuk sesiapa sahaja yang ingin mengurus jauh

Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel Mar 10, 2024 pm 05:51 PM

"Penjelasan terperinci tentang cara menggunakan ambil dan had dalam Laravel" Dalam Laravel, ambil dan had ialah dua kaedah yang biasa digunakan, digunakan untuk mengehadkan bilangan rekod yang dikembalikan dalam pertanyaan pangkalan data. Walaupun fungsi mereka adalah serupa, terdapat beberapa perbezaan halus dalam senario penggunaan tertentu. Artikel ini akan menganalisis penggunaan kedua-dua kaedah ini secara terperinci dan memberikan contoh kod khusus. 1. Kaedah Ambil Dalam Laravel, kaedah ambil digunakan untuk mengehadkan bilangan rekod yang dikembalikan, biasanya digabungkan dengan kaedah orderBy.

Perbandingan fungsi dan penggunaan ambil dan had dalam Laravel Perbandingan fungsi dan penggunaan ambil dan had dalam Laravel Mar 09, 2024 pm 09:09 PM

Ambil dan hadkan ialah dua kaedah yang biasa digunakan dalam Laravel untuk mengehadkan bilangan set hasil pertanyaan. Walaupun ia mempunyai persamaan tertentu dalam fungsi, ia berbeza dalam penggunaan dan beberapa butiran. Artikel ini akan menjalankan perbandingan terperinci tentang fungsi dan penggunaan kedua-dua kaedah ini, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik perbezaan antara mereka dan cara menggunakannya dengan betul. 1.kaedah ambil Kaedah ambil adalah dalam pembina pertanyaan LaravelEloquent

Menyelam mendalam tentang perbezaan antara ambil dan had dalam Laravel Menyelam mendalam tentang perbezaan antara ambil dan had dalam Laravel Mar 10, 2024 pm 01:00 PM

Dalam Laravel, kami sering menggunakan beberapa kaedah untuk mengehadkan bilangan hasil pertanyaan, termasuk kaedah ambil dan had. Walaupun kedua-duanya boleh digunakan untuk mengehadkan bilangan hasil pertanyaan, mereka mempunyai beberapa perbezaan yang ketara. Dalam artikel ini, kami akan mendalami cara mengambil dan had berbeza dalam Laravel dan menggambarkannya dengan contoh kod konkrit. Pertama, mari kita lihat kaedah ambil. Kaedah ambil adalah sebahagian daripada Eloquent dan biasanya digunakan untuk

Cara menggunakan had dan langkau fungsi Stream dalam Java untuk operasi strim Cara menggunakan had dan langkau fungsi Stream dalam Java untuk operasi strim Jun 26, 2023 pm 03:55 PM

StreamAPI telah diperkenalkan dalam Java 8, yang boleh memudahkan operasi koleksi. Kelas Strim menyediakan banyak kaedah berfungsi untuk beroperasi pada strim, termasuk penapisan, pemetaan, penggabungan dan banyak lagi. Antaranya, had dan langkau adalah dua fungsi yang digunakan untuk mengehadkan bilangan elemen dalam operasi aliran. 1. Fungsi had Fungsi had digunakan untuk mengehadkan bilangan elemen dalam aliran Ia menerima parameter jenis panjang n, yang mewakili bilangan had. Selepas memanggil fungsi had, aliran baharu dikembalikan, yang hanya mengandungi

Bagaimana untuk menyimpan had Final Fantasy 7 Bagaimana untuk menyimpan had Final Fantasy 7 Mar 07, 2024 pm 06:40 PM

Apabila bermain permainan dalam Final Fantasy 7, pemain boleh menggunakan kemahiran melampau dengan mengumpul had, yang boleh menyebabkan kerosakan besar atau memberikan kesan sokongan yang kuat Pemain boleh mendapatkan had dengan menerima kerosakan, menyerang musuh dan dipukul dalam kombo. Bagaimana untuk menyelamatkan had dalam Final Fantasy 7 1. Mengambil kerosakan Apabila watak diserang oleh musuh atau rakan sepasukan diserang, bar had akan meningkat secara beransur-ansur. Lebih banyak kerosakan yang anda terima, lebih cepat bar had diisi. 2. Menyerang musuh dan secara aktif menyerang musuh juga boleh meningkatkan kelajuan pengisian bar had. Had boleh dikumpul menggunakan serangan biasa, kemahiran atau sihir. 3. Apabila watak kombo hit diserang oleh musuh secara berterusan, kelajuan pengisian bar had akan dipercepatkan. Ini boleh dilakukan dengan menarik perhatian musuh atau dengan menggunakan hold

Pelaksanaan paging MySQL yang berbeza Pelaksanaan paging MySQL yang berbeza Feb 19, 2024 pm 03:26 PM

Apakah kaedah paging dalam MySQL? Contoh kod khusus diperlukan MySQL adalah sistem pengurusan pangkalan data relasi Untuk meningkatkan kecekapan pertanyaan dan mengurangkan jumlah penghantaran data, pertanyaan paging adalah keperluan yang sangat biasa. MySQL menyediakan pelbagai kaedah paging Kaedah ini akan diperkenalkan secara terperinci di bawah dan contoh kod khusus akan disediakan. Paging menggunakan klausa LIMIT: Klausa LIMIT digunakan untuk mengehadkan bilangan baris yang dikembalikan dalam hasil pertanyaan. Ia mempunyai dua parameter Parameter pertama menentukan kedudukan offset permulaan bagi hasil yang dikembalikan (mengira dari 0), dan parameter kedua

Selesaikan masalah yang Yum Httpd tidak dapat menghuraikan PHP Selesaikan masalah yang Yum Httpd tidak dapat menghuraikan PHP Mar 22, 2024 pm 01:06 PM

Untuk menyelesaikan masalah yang YumHttpd tidak dapat menghuraikan PHP, anda memerlukan contoh kod khusus Semasa membina tapak web, anda sering menghadapi masalah bahawa Httpd yang dipasang oleh Yum tidak dapat menghuraikan PHP, mengakibatkan ketidakupayaan untuk mengakses halaman laman web secara normal. Masalah ini telah melanda ramai juruweb dan pembangun Dalam artikel ini, kami akan menyediakan beberapa penyelesaian kepada masalah ini dan memberikan contoh kod khusus. Pertama, kita perlu mengenal pasti punca masalah. Httpd tidak boleh menghuraikan PHP biasanya kerana modul PHP yang diperlukan tiada atau dikonfigurasikan dengan salah

See all articles