Forum Webscript.Ru

Программирование => Perl => Тема начата: alex007 от 06 Ноября 2002, 23:32:21

Название: Скрипт Авторизации
Отправлено: alex007 от 06 Ноября 2002, 23:32:21
Люди, помогите найти/порекомендуйте скрипт, который работал следующим образом:
1) Пользователь заполняет форму:





2) Если пароль правелен то скрипт перенаправлял пользователя в директорию/файл пользователя (для каждого юзера своя/й директория/файл )
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.

Жду ответов.
С Уважением
Алекс.
Название: Скрипт Авторизации
Отправлено: glebushka от 07 Ноября 2002, 01:46:03
ээээ...
1,2. А написать слабо?:))
3 - чего-то не въехал, причём здесь скрипт?
Название: Скрипт Авторизации
Отправлено: alex007 от 07 Ноября 2002, 02:05:30
Цитировать
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.

Это дело немного я не дописал, что имелось ввиду,
для защиты от прямого адреса на директорию, тоеть не заполнив формы пользователь ни каким макаром не мог попасть в директорию/файл.

glebushka
Теперь понятно?
Название: Скрипт Авторизации
Отправлено: Mog. от 07 Ноября 2002, 08:43:04
1. Действительно, проще свой скрипт написать. Такие вещи делают скорее как часть чего то большого и выдирать из комплекса одну составляющую, а потом перетачивать под себя не всегда рационально.
2. А если пользоваться средствами сервера?
Название: Скрипт Авторизации
Отправлено: alex007 от 07 Ноября 2002, 20:43:20
Цитировать
А если пользоваться средствами сервера?

Имеешь ввиду через .htpasswd?
Название: Скрипт Авторизации
Отправлено: glebushka от 07 Ноября 2002, 21:49:58
Цитировать
Имеешь ввиду через .htpasswd?

да (ну вернее я имел в виду, когда писал, но думаю, что и Mog. тоже:-)))
Название: Скрипт Авторизации
Отправлено: alex007 от 09 Ноября 2002, 00:41:06
Вот написал скрипт,

#!/usr/local/bin/perl
##################

# Form Data Parsing

if ($ENV{\'REQUEST_METHOD\'} eq \'GET\') { $buffer = $ENV{\'QUERY_STRING\'}; }
else { read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'}); }

@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $FORM{$name} = $value;
}

################
# Comparison

open(LIST, "passwd.txt");
  @pass = ;
close(LIST);

foreach $line(@pass) {
   chomp($line);
   ($correctUsername,$correctPassword) = split(/\\|/,$line);
   if ($FORM{\'username\'} eq $correctUsername) {
      if($FORM{\'password\'} eq $correctPassword)
     {
     print "Location: http://$ENV{\'HTTP_HOST\'}/$FORM{\'username\'}/\\n\\n";
     }
      else {
     print "Location: http://$ENV{\'HTTP_HOST\'}/\\n\\n"; }
   }
}

Как теперь 3 пункт сделать??
Название: Скрипт Авторизации
Отправлено: Mog. от 09 Ноября 2002, 19:52:42
Цитировать
Как теперь 3 пункт сделать??

Можно поискать модуль перловый и (если найдешь) почитать доки к нему :)
Можно все содержимое директорий генерить скриптом, предварительно проверяя пароль/логин.
Если цепляться за средства серверной авторизации (htaccess), то надо писать скрипт, который прикидывается браузером и сразу выдает серверу лог/пароль не дожидаясь статуса 401, а потом все это дело окуратно спихивает на браузер юзера. Это чиста из физики процессов у меня вытекло :) .  Не знаю, правда, можно ли такое сотворить. Но попробовать то млжно. Профи, ваше мнение, плиз!
Название: Скрипт Авторизации
Отправлено: Mog. от 09 Ноября 2002, 19:54:37
Цитировать
Но попробовать то млжно

Следует читать как "Но попробовать то можно"
Весьма пардон.