imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 29.08.2004, 13:05     # 1
SoTiS
Guest
 
Сообщения: n/a

Exclamation Авторизация по IP и паролю.

Есть потребность на хостинге (mastak.ru) на папку повесить одновременно авторизацию по IP и паролю.

Подскажите как это лучше сделать.

Пример: юзер заходит в закрытую папку и тут идет проверка - если его IP есть в базе, то пропускаем, если нет его IP в базе, то спрашиваем пароль, пароля нет - до свидания (ошибка авторизации или страница с предложением оплатить доступ)...

буду благодарен за любую подсказку.
PS с меня если что требуется, то причитается... (напитки)
 
Старый 29.08.2004, 15:36     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Дак ты же сам описал алгоритм полностью, осталось написать десяток строк его реализации на том же PHP, в чем проблема, или в чем вопрос?

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

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 29.08.2004 в 15:42.
Hubbitus вне форума  
Старый 29.08.2004, 19:33     # 3
InsaneX
::VIP::
 
Аватар для InsaneX
 
Регистрация: 15.12.2002
Адрес: Spain
Сообщения: 500

InsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX Гуру
.htaccess file v etoy papke
Код:
Order deny,allow
Allow from 127.0.0.1
Allow from eshe.odin.ip.adres
Deny from all
AuthType Basic
AuthName "go away"
AuthUserFile /usr/local/etc/apache2/htpasswd
AuthGroupFile /dev/null
Require valid-user
/usr/local/etc/apache2/htpasswd
Код:
user:$2a$04$A3mH0.................qPFjmxxxxxxxxxxxx-skipped
ps: htpasswd delaetsya s pomoshiyu progi htpasswd cherez shell
InsaneX вне форума  
Старый 29.08.2004, 20:02     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
InsaneX, это же не будет работать как требуется, он же запросит пароль только для указанных IP, а нужно наоборот - доверенные IP пропустить без пароля, а пароль спрашивать у всех остальных, а он остальных не пропустит вообще никак!

Или я ошибаюсь?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 29.08.2004, 20:08     # 5
InsaneX
::VIP::
 
Аватар для InsaneX
 
Регистрация: 15.12.2002
Адрес: Spain
Сообщения: 500

InsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX ГуруInsaneX Гуру
hmm da ti prav navernoe.. ya che to podumal chto odnovremenno nado i ip i eshe k nemu parol'

Цитата:
повесить одновременно авторизацию по IP и паролю
nu togda ya toje "Если нужно, могу занедорого реализовать полностью - стучись в аську" =)
InsaneX вне форума  
Старый 30.08.2004, 02:28     # 6
CEO
Full Member
 
Аватар для CEO
 
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998

CEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собойCEO Имеются все основания чтобы гордиться собой
А так можна?
.htaccess
Цитата:
<Files *.dat>
order allow,deny
deny from all
</Files>
tr_ip.dat -- разрешенные IP
Цитата:
127.0.0.1
127.0.0.2
127.0.0.3
form.html
Цитата:
<html>
<body bgcolor=b9eeb5>
<font face="Arial" size=4><b>Вам нужно аторизоваться</b></font><br>
<table width=400 border=1 bgcolor=b9dda5>
<form action="phau.php" method=post>
<tr><td bgcolor=99bd55><font face="Arial" color=white size=2><b>Вход<b></font></td></tr>
<tr><td><font face="Arial" color=black size=2>Имя <input name="username" value="" size=10> Пароль <input name="userpass" type=password value="" size=10></font></td></tr>
<tr><td><font face="Arial" color=black size=2><input name=submit type=submit value="Войти"> <input type=reset value="Сбросить"></font></td></tr>
</form>
</table>
</body>
</html>
phau.php -- основной скрипт
Цитата:
<?php
#вспомогательные функции
function auth ($name, $pass) {
$userlist = file("tr_user.php");
$done = false;
$auth = false;
$found = false;
$i = 1;
while (!$done && !$found) {
list($n,$p,$a) = explode(':',$userlist[$i]);
$found = ($n==$name);
$auth = $found && ($p == md5($name.$pass));
$done = $auth || ($i>=count($userlist));
$i++;
}
return $auth;
}
function ra() {
if($query_string!= "")
{ $url = $php_self.'?'.$query_string; }
else { $url = $php_self; }
$add = $url."/form.html";
Header("Location: $add");
}

#Получение user's IP
if(getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else {
$ip=getenv('REMOTE_ADDR');
}
#поиск полученного IP в списке разрешенных
$adre = file('tr_ip.dat');
$a = count($adre);
$i = 0; $w = -1;
while ($i <= $a):
$tmp = trim(str_replace ("\n","", $adre[$i]));
if ($tmp == $ip) { $w = $i; $i = $a++; }
$i++;
endwhile;
$res=false;
if ($w == -1)
{
if (!isset($username)){ra();}
$auth=authUser($username, $userpass);
if (!$auth) {ra();}
else {$res=true}
} else {$res=true}
if (!$res){ra();}
?>
tr_user.php -- список пользователей
Цитата:
<?php die("Access restricted"); ?>
admin:f6fdffe48c908deb0f4c3bd36c032e72:0
Основной скрипт просто подключить к тем страницам, кторые необходимо защитить
Цитата:
<?php include "phau.php";?>
__________________
Старые игры раздают здесь
CEO вне форума  
Старый 30.08.2004, 11:30     # 7
SoTiS
Guest
 
Сообщения: n/a

Спасибо за советы, буду пробовать. Но если кто-то хочет помочь (за недорого и полностью) то готов принять помощь. Моя аська 329146
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 20:41.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.