第四 课: 给 你 搭建 的 网站 加 个 权限 , 如果 人人 都能 访问 的 话 , 会 出 事儿 的!

Това е първият път, в който някога съм опитвал да работя с .htpasswd и .htaccess файлове, така че, моля, посочете моите детски произведения.

Имам корен на документа на apache на /www/ на моя сървър на debian. Вътре има папка с име Logs/ което искам да огранича достъпа с помощта на htpasswd. Създадох файла си htpasswd, използвайки командата htpasswd на черупката. И това е резултатът:

user: hjp: hjpotter92: 

Сложих този файл на име .htaccess вътре /www/. The Logs/ има следния htaccess файл в него:

AuthName 'Restricted Area' AuthType Basic AuthUserFile /www/.htpasswd AuthGroupFile /dev/null require valid-user 

Това отново беше създадено с помощта на онлайн инструмент (забравих името / връзката му и не мога да търся в историята на браузъра сега).

Проблемът, тъй като може би вече ви е поразил, е, че не изпитвам никаква промяна в достъпа до папката ми „Регистри“. Папката все още е достъпна за всички. Използвам apache като root потребител (ако това има значение / помага). Моля, помогнете / насочете ме. Опитах да прочета някои ръководства за htaccess и следвах някои от по-старите въпроси за SO, но все още не съм намерил начин да огранича достъпа до папката Logs с парола.

  • 1 FYI, трябва да бъде .htaccessи трябва: 1.) да не пускате apache като root (ужасно за сигурността) и 2.) да използвате удостоверяване с обобщена информация, освен ако нямате достъп само до този URL чрез HTTPS. Защото дори и твоят .htpasswd файлът е шифрован SHA1, браузърът ще изпраща паролата в обикновен текст, ако използвате основно удостоверяване.
  • @ Lèsemajesté Напълно съм наясно с работата на apache като root, но тъй като мрежата е доста частна (не повече от 300 потребители, всички от които познавам), така че е добре. Използвам MD5 вместо SHA1 в .htpasswd.
  • Какъв е смисълът изобщо да съхранявате паролите в MD5 SHA1, ако вашият Apache работи на root. Със сигурност не се притеснявате за сигурността тогава и хеширането на паролите е безсмислено.

Реших проблема с помощта на човек, когото познавам. :)

Добави този сегмент към httpd.conf:

 Allow from all AuthName 'Restricted Area' AuthType Basic AuthUserFile /www/.htpasswd AuthGroupFile /dev/null Require valid-user  

Защото има ред вътре httpd.conf както следва:

AllowOverride None 

Изглежда, че сте решили проблема си, като поставите съдържанието на вашия .htaccess файл в httpd.conf.

Друго решение би било промяната на реда във вашия httpd.conf от

AllowOverride None 

да се

AllowOverride All 

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?