Ставим пароль на папку 'adm'

Поставить пароль совсем не сложно. До меня это давно уже написано другими людьми, поэтому я не буду изобретать велосипед и просто скопирую информацию с сайта ihc.Ru:
Как можно поставить пароль на директорию?

Для того, чтобы при обращении к защищенной директории web-сервер Apache спрашивал пароль, нужно в эту директорию поместить файл .htaccess, в котором прописать следующие директивы:
  • AuthName ProtectedZone
    Вместо ProtectedZone можно написать все, что угодно. Это название защищенной области, оно будет показываться в браузере при запросе пароля, являясь по сути дела подсказкой пользователю. Если Вы хотите использовать русские буквы или же более одного слова, необходимо использовать кавычки.
    Пример: AuthName "Введите пароль для входа"

  • AuthType Basic
    Это метод шифрования пароля. Практически всегда используется именно данный вид шифрования.
    Пример: AuthType Basic

  • AuthUserFile /полный_путь_к_файлу/.htpasswd
    Это путь к файлу, в котором будут храниться логины и пароли. Он может иметь практически любое имя и располагаться в любом каталоге, главное, чтобы web-сервер мог его прочитать, что требует установки соответствующих прав доступа к этому файлу (на нашем сервере - 644). Однако, традиционно такие файлы называют .htpasswd.
    Пример: AuthUserFile /home/test/1.pohnah.z8.ru/docs/.htpasswd

  • require valid-user
    Эта строка говорит о том, что доступ в защищенную директорию будет разрешен всем пользователям, чьи логины и пароли есть в файле .htpasswd. Если нужно дать доступ конкретным пользователям, то тогда указывается require user логины_пользователей_через_пробел.
    Пример: require user vasya kolya petya
    Пример: require valid-user

Как редактировать файл .htpasswd?

Файл паролей .htpasswd - это обычный текстовой файл. Каждый пользователь описан в нем одной строкой вида логин:шифрованый_пароль. Для шифрования паролей используется специальная программа htpasswd. Обратите внимание, в файл нельзя просто вручную записать пароль, пароль обязательно должен быть зашифрован программой htpasswd.

Если файл .htpasswd еще не существует, программа htpasswd должна быть запущена с ключом -c:
htpasswd -c /полный_путь_к_файлу/.htpasswd логин_пользователя
Пример: htpasswd -c /home/test/1.pohnah.z8.ru/docs/.htpasswd vasya

При этом программа htpasswd создаст файл .htpasswd, запросит пароль для пользователя и создаст запись о пользователе с указанными логином и паролем в этом файле. При добавлении следующих пользователей и изменении паролей уже существующих программа вызывается подобным же образом, но без указания ключа -c. Для удаления пользователя достаточно открыть файл .htpasswd обычным текстовым редактором и удалить строчку с его логином и паролем.

Как создать файл .htpasswd если тарифный план не предусматривает доступа по SSH?

Если тарифный план не предусматривает доступ по SSH (доступ к командной строке сервера), то для создания файла .htpasswd можно воспользоваться специальной windows-программой. Для этого, нужно скачать дистрибутив, распаковать его и запустить программу passwd.exe. После этого в окне по закладке "Single Password" с помощью кнопки "Browse" задать имя файла (обычно это .htpasswd), а в верхней части окна ввести имя пользователя, пароль и нажать кнопку "Encode and Save". После этого полученный файл необходимо закачать по протоколу FTP в нужную директорию на нашем сервере.

« Задумываемся о раскрутке в поисковых системахУдаление страничек »


Ниже Вы можете пофлудить - можете спросить, обругать, похвалить и т.д.

Добавление комментариев отключено


22.02.2012   Роман

Автору РЕСПЕКТИЩЕ за материал



12.02.2012   Марк

Много полезной информации по этой теме можно прочитать в этой статье :
lifeexample.ru/razrabotka-i-optimizacia-saita/htaccess-zapretit-dostup.html



20.01.2012   хуй вам

ничё не работает



01.11.2011   KustoSoft

По поводу паролирования админки
Далеко не все хостинги дружат с HTTP-auth, некоторые пускают в админку без пароля

P.S.
Я думаю многим было бы интересно если бы был выложен алгоритм, использованный при искажении чисел в капче



21.06.2011   SYY

Вроде все сделал правильно, но когда в браузере пытаюсь зайти, просто выдает ошибку 404. Подскажите ПЖЛСТ что надо делать? Заранее ПАСИБ!!!



02.04.2011   дима

пацаны вы чо творите проще всего сделать так берешь создаешь новую папку на робочем столе нажымаешь на нее правой кнопкой мыши нажымаешь 7-zip там вылазеет тобличка где аписано ентер пассворд и рентер пассворд пароль в двух абличках одинаковый ставишь и все


27.04.2011   роман

а чё если нет 7-zip


21.06.2011   SYY

Это при архивации папки.



20.02.2011   Tim

Как поставить пароль на папку?



05.09.2010   Арт

как поставить пароль на файл?


12.10.2012   Blanca

Smack-dab what I was lkooing for-ty!



31.10.2009   Iam

Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
<Files private.zip>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>



07.12.2008   Эльвира

Помогите сделать авторизацию!!!!!!!!!!!



22.10.2008   Артём

Спасибо Автору за статьи - получилось все на ура. Вот правда с паролированием плохо. Делаю на Денвере, ошибка 500:(
<br>&lt;br&gt;
<br>&lt;br&gt;Андрей. Я запустил вашь скрип(отдельным файлом) выдает Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in Z:\\\\home\\\\localhost\\\\www\\\\mySite.ua\\\\adm\\\\login.php on line 61
<br>&lt;br&gt;
<br>&lt;br&gt;это по счёту 2- я session_destroy();
<br>&lt;br&gt;Что там подправить надо?



17.10.2008   Андрей

.htpasswd предназначен для паролирования директорий а не сайтов. Ну он конечно подойдет, если вы один туда ходите, а если у вас есть партнеры, или модераторы, тогда что?.
Самый простой вариант это добавить в базу данных такую таблицу

CREATE TABLE IF NOT EXISTS `admin` (
`login` varchar(30) NOT NULL,
`passwd` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

и написать самый простой и легкий скриптик авторизации:
<?php
$login_screen = "<center><table border=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" cellpadding=\"0\" cellspacing=\"3\">
<form method=post action=/admin/><input type=hidden name=form value=sent><tr>
<td align=\"right\" valign=\"top\"><b>
<font face=\"$fontface\" size=\"2\">Логин</font>:</b></td>
<td align=\"left\" valign=\"top\">
<input type=\"text\" name=\"login\" size=\"25\" style=\"font-family: $fontface; font-size: 9pt; font-weight: bold\"></td>
</tr><tr><td align=\"right\" valign=\"top\">
<font face=\"$fontface\" size=\"2\"><b>Пароль:</b></font></td>
<td align=\"left\" valign=\"top\">
<input type=\"password\" name=\"passwd\" size=\"25\" style=\"font-size: 9pt; font-family: $fontface; font-weight: bold\"></td>
</tr><tr><td></td><td align=\"left\" valign=\"top\">
<input type=\"submit\" value=\"Вход\" style=\"font-family: $fontface; font-size: 9pt; font-weight: bold; float: right\"></td>
</tr></form></table></center>";
if ($_COOKIE['ref']) {
setcookie("ref", $_COOKIE['ref'], time()-964000);
}
if (!isset($_SESSION['asess_name']) || !isset($_SESSION['asess_passwd'])) {
if ($_POST['form'] == 'sent') {
if ($_POST['login'] == "" || $_POST['passwd'] == "") {
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
echo("<script>alert('Логин и Пароль не могут быть пустыми!');</script>");
session_destroy();
mysql_close;
exit;
} else {
$_SESSION['asess_name'] = ($_POST['login']);
$_SESSION['asess_passwd'] = ($_POST['passwd']);
header("Location: /admin/");
}
mysql_close;
exit;
} else {
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
session_destroy();
mysql_close;
exit;
}
} else {
$username = $_SESSION['asess_name'];
$pass = $_SESSION['asess_passwd'];
$q = "SELECT login FROM `admin`";
$resy = mysql_query($q);
while($row = mysql_fetch_array($resy)) {
$db_login = $row["login"];
};
$qt = "SELECT passwd FROM `admin`";
$resyt = mysql_query($qt);
while($row = mysql_fetch_array($resyt)) {
$db_passwd = $row["passwd"];
};
if ($db_login != $username || $db_passwd != $pass || $db_login == "" || $db_passwd == ""){
echo "<center>
<table>
<tr bgcolor=\"#CCCCCC\">
<td><b>Вход в админ панель</b></td>
</tr>
<tr bgcolor=\"#CCCCCC\">
<td><b>$login_screen</b></td>
</tr>
</table>
</center>";
echo("<script>alert('Неверный логин, пожалуйста проверьте логин и пароль');</script>");
session_destroy();
mysql_close;
exit;
}
};
?>
Над этим примером можно делать все что угодно.
Ну самое лучшее для большей безопасности рекомендую перевести все пароли в MD5.



25.07.2008   Диман

Спасибо за предоставленную статью.


06.01.2013   Lola

That hits the traegt perfectly. Thanks!



03.06.2008   Blaze

Ничего понять не могу... Скачал программку для создания файла паролей, сделал все как в инструкции. Загрузил на сервер. При запросе логина с паролем ввожу их, а сервер пароль принимать не хочет! Открыл файл .htpasswd в блокноте, посмотрел, там строка вида Login:зашифрованный пароль. Стер этот "зашифрованный пароль" и вопреки статье вписал его руками в чистом виде. Попробовал зайти и всё получилось. Отчего так получается?


23.10.2012   Евгений

Возможно не стыковка в методе шифрования?



15.05.2008   TOV

у меня ошибка 500 была из-за неправильного пути AuthUserFile, т.к. нужно вводить только полный путь к директории с .htpasswd
Присоединюсь с благодарностью за мануал для начинающих! 8)



14.04.2008   Andrey

А эта процедура работает везьде? Я попробовал проделать это всё в денвере, и ничего не вышло, выдаёт ошибку 500. И пишет о возможных неполадках в самом внизу вот это "В текущей директории расположен файл .htaccess с ошибочными директивами. Например, Apache в Денвере не поддерживает устаревший модуль mod_charset, имеющийся у некоторых хостеров, и расценивает директивы вроде CharsetDisable как ошибочные. Для того, чтобы исправить ситуацию, отредактируйте файл .htaccess, чтобы он выглядел примерно так:
<IfModule mod_charset.c>
CharsetRecodeMultipartForms off
# и другие директивы mod_charset
</IfModule>"
Что не так, и как сделать чтоб работало?



27.02.2008   Mr.Taker

Права доступа ставятся комендой chmod (-R если на папку то все файлы внутри тоже меняют права) 755 (сами права) fail.txt(собственно название файла которому ставятся права)



20.11.2007   Sad

Как выставить права доступа на файл.
Я использую в качестве ftp-клиента Total Commander. Подключаешься, затем встаешь на любой файл с той стороны и вызываешь из меню Файл->Атрибуты. Всё просто.



04.11.2007   DeDMakar

Я установил пароли. При запуске директории где .htaccess. Выводит запрос пароля. Вожу его. И перехода нету на новую страницу.



25.10.2007   Евгений

автору огромнейший респект!!!
если б еще и объяснил как выставлять права доступа на те или иные файлы



09.10.2007   Natacha1972

можно кратко и ясно




 
  (c) Janda.ru