Forum Webscript.Ru
Программирование => Perl => Тема начата: alex007 от 06 Ноября 2002, 23:32:21
-
Люди, помогите найти/порекомендуйте скрипт, который работал следующим образом:
1) Пользователь заполняет форму:
2) Если пароль правелен то скрипт перенаправлял пользователя в директорию/файл пользователя (для каждого юзера своя/й директория/файл )
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.
Жду ответов.
С Уважением
Алекс.
-
ээээ...
1,2. А написать слабо?:))
3 - чего-то не въехал, причём здесь скрипт?
-
3) Если пользователь попытается зайти в директорию/файл юзера, то его просто перенаправило на другую страницу, но не в его директорию/файл.
Это дело немного я не дописал, что имелось ввиду,
для защиты от прямого адреса на директорию, тоеть не заполнив формы пользователь ни каким макаром не мог попасть в директорию/файл.
glebushka
Теперь понятно?
-
1. Действительно, проще свой скрипт написать. Такие вещи делают скорее как часть чего то большого и выдирать из комплекса одну составляющую, а потом перетачивать под себя не всегда рационально.
2. А если пользоваться средствами сервера?
-
А если пользоваться средствами сервера?
Имеешь ввиду через .htpasswd?
-
Имеешь ввиду через .htpasswd?
да (ну вернее я имел в виду, когда писал, но думаю, что и Mog. тоже:-)))
-
Вот написал скрипт,
#!/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 пункт сделать??
-
Как теперь 3 пункт сделать??
Можно поискать модуль перловый и (если найдешь) почитать доки к нему :)
Можно все содержимое директорий генерить скриптом, предварительно проверяя пароль/логин.
Если цепляться за средства серверной авторизации (htaccess), то надо писать скрипт, который прикидывается браузером и сразу выдает серверу лог/пароль не дожидаясь статуса 401, а потом все это дело окуратно спихивает на браузер юзера. Это чиста из физики процессов у меня вытекло :) . Не знаю, правда, можно ли такое сотворить. Но попробовать то млжно. Профи, ваше мнение, плиз!
-
Но попробовать то млжно
Следует читать как "Но попробовать то можно"
Весьма пардон.