Автор Тема: htpasswd в php  (Прочитано 7469 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bsd

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
htpasswd в php
« : 24 Декабря 2002, 12:00:52 »
Мужики подскажите как можно на пхп создать что-то типа .htpasswd!

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #1 : 24 Декабря 2002, 15:48:16 »
Полностью аналогичную штуку сделать нельзя (доступ к файлам управляется на уровне сервера)
TANSTAAFL

Оффлайн Pr0Head

  • Members of GreenPeace
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://digital-market.ru
htpasswd в php
« Ответ #2 : 24 Декабря 2002, 16:23:35 »
Можно использовать что-то вроде этого, но это закроет доступ только на этот файл. Для полноценной защиты нужно использовать .htpasswd

<?php
  
if(!isset($PHP_AUTH_USER)) {
    
Header("WWW-Authenticate: Basic realm=\\"My Realm\\"");
    
Header("HTTP/1.0 401 Unauthorized");
    echo 
"Text to send if user hits Cancel button\\n";
    exit;
    }

elseif (
$PHP_AUTH_USER == "username" $PHP_AUTH_PW == "password") {
	
header("Location: news.php");
    }

else {
	
echo 
"Доступ закрыт";
}
?>
Банк выполнил недопустимую операцию и будет закрыт!

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #3 : 24 Декабря 2002, 21:56:53 »
с помощью PHP можно создать .htpasswd
а "что-то вроде" можно вроде и создать.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #4 : 24 Декабря 2002, 23:38:43 »
Maniac
Можно.
Это обычный текстовыйф файл определенного формата.
Так что какие могут быть проблемы?
AS IS...

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #5 : 25 Декабря 2002, 17:24:46 »
ThE0ReTiC
Я так понял, ему нужно что-то похожее по функциональности, а не по содержанию :)
TANSTAAFL

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #6 : 25 Декабря 2002, 17:27:00 »
Maniac
С чего ты так решил?
А где .htaccess, без которого .htpasswd работать не будет, в вопросе? ;)
AS IS...

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #7 : 25 Декабря 2002, 17:35:40 »
Цитировать
А где .htaccess

Гм... Господин вопрошающий (кстати, где он?) мог и не знать о необходимости данного полезного файлика
TANSTAAFL

Оффлайн bsd

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #8 : 27 Декабря 2002, 14:43:01 »
ThE0ReTiC

$sw=$log.\':\'.crypt( $passw,substr($passw,0,2))."\\n" ;

   if (!fwrite($fw,$sw))
      echo "Невозможно записать файл";


файл создается, но попасть в дир нельзя, а если создать .htpasswd с помощью утилиты htpasswd.exe , то все работает

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #9 : 27 Декабря 2002, 14:46:29 »
bsd
А где fopen/fclose ?
AS IS...

Оффлайн bsd

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #10 : 27 Декабря 2002, 14:50:56 »
ThE0ReTiC
да с файлом все Ок, т.е. htaccess и htpasswd создаются, я просто не весь текст привел. Меня интересует содержимое htpasswd , почему оно разно, как сделать чтобы было одинаковое, т.к. не опознается пароль, если делать выше указанным способом

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #11 : 27 Декабря 2002, 14:59:06 »
мне кажется, что надо делать не crypt, а md5
хотя зависит, в первую очередь, от версии самого htpasswd
самое правильное - запускать его через exec

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #12 : 27 Декабря 2002, 15:06:24 »
RomikChef
Конечно через md5.
Цитировать

crypt() will return an encrypted string using the standard Unix DES-based encryption algorithm or alternative algorithms that may be available on the system.

А в Apache по умолчанию используется MD5, для хранимых паролей
AS IS...

Оффлайн bsd

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
htpasswd в php
« Ответ #13 : 27 Декабря 2002, 15:31:02 »
Через md5 тоже не идет, попробую чере exec!

Оффлайн Metaller

  • Мелкое злобное существо
  • Ветеран
  • *****
  • Сообщений: 538
  • +0/-0
  • 2
    • Просмотр профиля
    • http://michael.pp.ru
htpasswd в php
« Ответ #14 : 27 Декабря 2002, 15:38:36 »
У меня вот такое работает:


	
function 
to64($v$n)
	

	
	
$s =""
	
	
$itoa64 = \'./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\'; 
	

	
	
while (--$n >= 0) { 
	
	
	
$s .= substr($itoa64, $v & 63, 1); 
	
	
	
$v >>= 6; 
	
	

	
	
return $s; 
	


	
function CryptPass($pass)
	

	
	
mt_srand(microtime()); 
	
	
$salt = to64(mt_rand(0,65535), 2); 
	
	
$cpass = crypt($pass, $salt); 
	
	
return $cpass; 
	

Everybody\'s Got A Ticket To Ride Except For Me And My Lightning...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28