Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Доступ к страницам по паролю.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Diman1911



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача: к некоторым страницам сделать доступ по паролю.
Раньше подобных вещей я не делал.
Насколько я понимаю, есть три варианта реализации.
1. Сделать это на CGI.
    нужно ли при этом юзать SSI и как?
2. Сделать это на PHP.
3. Использовать .htaccess    
Поскольку про .htaсcess я до сегодняшнего дня ничего почти не знал (ну такой уж я ламак) то киньте pls ссылку где про это почитать.
Какая из реализаций удобнее и какую быстрее сделать?



 
 
 
В этой теме обсуждаем только конкретные способы паролирования.
 
Со всеми вопросами по готовым скриптам/программам и общим вопросам паролирования милости просим в соответствующие темы в "Помощи вебмастеру":
 

 


 
 

Всего записей: 24 | Зарегистр. 28-06-2003 | Отправлено: 19:30 14-07-2003 | Исправлено: Svarga, 03:22 24-07-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ripperm

Цитата:
если логин и пароль не верны  

то
Цитата:
No access..";  


Цитата:
а если верны  


Цитата:
Это секретный контент...";  

но доступ же из хттп заголовка к секретному контенту все равно возможен

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 13:24 24-07-2003
ripperm



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Excell, и как?
Из адресной строки установить logged_user?

Цитата:
unset($logged_user);    
 
 
Не прокатит!
Из адресной строки нельзя указать logged_user. Он берется из сессии. А в сессию записывается во время авторизации - если пароль и логин верен...
 

Всего записей: 302 | Зарегистр. 03-06-2002 | Отправлено: 13:40 24-07-2003
DmitryV



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но мы также можем попасть (!) на some_page.php при наборе в http заголовке адрессной строке браузера  

 
в начале каждой странице вставь код проверки на авторизацию если не верно прекращение скрипта и редирект на логин
 
 
Добавлено
Примера нет сейчас под рукой-дома если интересно скину весь механизм!

Всего записей: 1268 | Зарегистр. 12-01-2003 | Отправлено: 13:54 24-07-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryV

Цитата:
Примера нет сейчас под рукой-дома если интересно скину весь механизм!

не помешал, можно на мыло в профиле..

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 16:02 24-07-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2all
нашел нужный сценарий (по линку Cheery), который работает отлично (по крайней мере у меня).  
Предлагаю протестировать другим.
Вот его код:

Код:
<?  
$login=$_SERVER["PHP_AUTH_USER"];  
$password=$_SERVER["PHP_AUTH_PW"];  
if($login!="user"){  
  header('WWW-Authenticate: Basic realm="'.$login.'"');  
  header('Status: 401 Unauthorized');  
  header('HTTP-Status: 401 Unauthorized');  
  echo 'No access!';  
  exit;  
}  
?>  
<button>LAUNCH</button>
бла-бла-бла...  

только интересно как он запоминает юзера на домене, и сколько он его хранит??

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 13:54 26-07-2003
inche0n



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Excell
вот чуть переделанный скрипт:

Код:
<?php
 
$LOGIN = "test";
$PASSWORD = "qwerty";
 
function error ($error_message) {
echo $error_message."<BR>";
exit;
}
 
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
error("Unauthorized access...");
}
?>  
 
<html>
тут бла бла бла что отобразиться при правильном вводе логина и пароля
</html>


----------
RU.Board DC++ Hub - фильмы, е-буки, музыка и многое другое
http://dc.ru-board.com

Всего записей: 3127 | Зарегистр. 03-11-2002 | Отправлено: 17:02 26-07-2003 | Исправлено: inche0n, 17:03 26-07-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Excell

Цитата:
только интересно как он запоминает юзера на домене, и сколько он его хранит??

Хранит, пока открыто окно бразуера.. или материнские или дочерние окна его..  
Так как этот пароль и реалм помнит браузер и выдает его каждый раз при запросе чего то в паролированной директории..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:28 26-07-2003
Diman1911



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт ripperma у меня лажает, если включить в php.ini флаг обработки ошибок E_ALL -  
 
Насколько безопасны оба предложенных варианта?  
 
И где про безопасность почитать можно - киньте pls пару ссылок
 

Всего записей: 24 | Зарегистр. 28-06-2003 | Отправлено: 01:20 27-07-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inche0n
но тот скрипт, тоже работает..
но твой еще проверяет пасс

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 14:57 28-07-2003
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Excell

Цитата:
<?  
$login=$_SERVER["PHP_AUTH_USER"];  
$password=$_SERVER["PHP_AUTH_PW"];  
if($login!="user"){  
  header('WWW-Authenticate: Basic realm="'.$login.'"');  
  header('Status: 401 Unauthorized');  
  header('HTTP-Status: 401 Unauthorized');  
  echo 'No access!';  
  exit;  
}  
?>  
<button>LAUNCH</button>  
бла-бла-бла...  

Это называется - "Базовая HTTP аутентификация" в идеале делается например вот-так:

Цитата:
 
 if ([b]substr($SERVER_SOFTWARE, 0, 9) == "Microsoft" &&
     !isset($PHP_AUTH_USER) &&
     !isset($PHP_AUTH_PW) &&
     substr($HTTP_AUTHORIZATION, 0, 6) == "Basic "
    )
 {
   list($PHP_AUTH_USER, $PHP_AUTH_PW) =
     explode(":", base64_decode(substr($HTTP_AUTHORIZATION, 6)));
 };
 if ($PHP_AUTH_USER!='kolya' || $PHP_AUTH_PW!='111') {
   header('WWW-Authenticate: Basic realm="Realm"');
   if (substr($SERVER_SOFTWARE, 0, 9) == "Microsoft")
     header("Status: 401 Unauthorized");
   else
     header("HTTP/1.0 401 Unauthorized");
   exit;
 };
 


----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 18:26 29-07-2003 | Исправлено: Mamay, 18:27 29-07-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2all
а как насчет авторизации через http-заголовок?

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 14:10 30-07-2003
inche0n



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос такой, безопасен ли этот скрипт,  

Код:
<?php
 
$LOGIN = "admin";
$PASSWORD = "password";
 
function error ($error_message) {
echo $error_message."<BR>";
exit;
}
 
if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
error("Unauthorized access...");
}
?>
 
<html>  
тут бла бла бла что отобразиться при правильном вводе логина и пароля  
</html>  
 

, мимо него можно пройти до контента?

----------
RU.Board DC++ Hub - фильмы, е-буки, музыка и многое другое
http://dc.ru-board.com

Всего записей: 3127 | Зарегистр. 03-11-2002 | Отправлено: 11:56 25-09-2003
Excell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
inche0n
у меня все отлично работает...

Цитата:
 мимо него можно пройти до контента?

это зависит от пермишенов хостера...

----------
Построю лабиринт, в котором смогу затеряться с тем, кто захочет меня найти... Кто это сказал и о чем?

Всего записей: 1554 | Зарегистр. 31-08-2002 | Отправлено: 17:23 26-09-2003
inche0n



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Excell

Цитата:
у меня все отлично работает

дык, у меня тоже

Цитата:
это зависит от пермишенов хостера...

С этого момента поподробнее..?

Всего записей: 3127 | Зарегистр. 03-11-2002 | Отправлено: 17:54 26-09-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Доступ к страницам по паролю.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru