Forum Webscript.Ru

Наши скрипты => Sanitarium WebLoG => Модификации => Тема начата: Green Kakadu от 24 Февраля 2002, 02:30:43

Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Green Kakadu от 24 Февраля 2002, 02:30:43
Уже можно скачать мод для паролирования Sanitarium WebLoG.
Проверялся он под IE с включеными cookies (это намек на то, что в NN, Mozilla, Opera он не проверялся) :)
куки надо включить обязательно (через них передается ID и время сессии).
МОД запускается оч. легко.
Скачать можно тут (ээ еще в уголке Sanitarium не оформили соотв. образом, поэтому пока линк только на форуме):
 http://webscript.ru/sanitarium/auth.zip  ;)

А вот readme (оно есть в комплектации к моду в auth.zip, ну не все же качать будут)
===============================
***AUTH-MOD***
----------------------------------------------------
Auth-mod - система безопасности Sanitarium WebloG
Автор: Green Kakadu (gnezdo@webscript.ru)
Форум/Тех.Поддержка: http://forums.webscript.ru
Copyright 2002 WebScript.Ru Network ( http://webscript.ru )

------------------------------------------------------
Описание: Данный мод (auth-mod) обеспечивает некоторую иллюзию безопасности
 для тех, у кого нет воз-ти использовать .htaccess для паролирования доступа к
системе веб-публикаций Sanitarium WebLoG (http://webscript.ru/sanitarium).
Скачать данный мод (и саму систему публикаций) можно отсюда:
http://webscript.ru/sanitarium


Инструкция по установке:
-------------------------------------------------------
Паролировать нужно три файла: com_admin.cgi, admin.cgi и upload.cgi
Все нижеописанное - это повторяющиеся однотипные (почти) замены для каждого из этих файлов.
Принцип таков:
- подключаем библиотеку auth.pl (require "auth.pl")
- прописываем в начале "созидательной" части скрипта строки,
 заставляющие его проверять личность админа и только после этого выполнять.

Не пугайтесь (по началу кажется, что править много и это несколько угнетает),
 все на самом деле быстро и легко делается. Приступим.


1 Редактируем файл admin.cgi
-------------------------------------------------------
1.1 После строк (в начале файла):

require "cfg.cfg";
require "Sanitarium_WL.pm";
require "lang.pl";#это строка ~36

вставить строку:
require "auth.pl";

1.2. В том же файле (admin.cgi) После:

sub main {
#--------------------------------------------------------------  
$script_admin||=$ENV{\'SCRIPT_NAME\'};
if ($ENV{\'REQUEST_METHOD\'}){%in=&parse_form;}

добавить строки:

if ($in{\'login\'}){&check_login($in{\'pass\'});}
else {&check_user;}

ИСПРАВЛЕНО!

2 Редактируем com_admin.cgi
--------------------------------------------------------------
2.1. После строк:

require "Sanitarium_WL.pm";
require "Comment_WL.pm";
require "lang.pl";
require "cfg.cfg";# это строка ~22

добавляем строчку:
require "auth.pl";

2.2. В самом начале sub main, находим строку:
if ($ENV{\'REQUEST_METHOD\'}){%in=&parse_form;}

после нее добавляем:

if ($in{\'login\'}){&check_login($in{\'pass\'});}
else {&check_user;}

ИСПРАВЛЕНО!

3. Редактируем upload.cgi
---------------------------------------------------------------
3.1 Находим в начале файла строки (20-21):
require "cfg.cfg";
require "lang.pl";

Меняем их на:

require "cfg.cfg";
require "lang.pl";
require "auth.pl";

3.2 Находим строки:

sub main {
#-------------------------------------------------------------------
$obj = new CGI;

После этого помещаем это:
if ($obj->param(\'login\')){&check_login($obj->param(\'pass\'));}
else {&check_user;}

3.3. По желанию. Можно поставить лимит на максимальный размер загружаемых файлов (в байтах),
переменная $size_limit=0;
Например:
my $size_limit=100*1024;#100кб
my $size_limit=50*1024;#50 кб

В целом, имеет смысл поставить это ограничение - на всякий случай..

----------------------------------------------------------------
4. Настраиваем auth.pl

Находим строку (15-я строка):

my $password=\'GKydljZ1x/Jv.\';

и вписываем вместо GKydljZ1x/Jv. (это соответствует паролю admin) свой ЗАШИФРОВАННЫЙ пароль.
Как и где шифровать?
Есть два варианта:

  1 Заходите сюда: http://webscript.ru/cgi-bin/sanitarium/password.cgi
    вводите свое слово, потом списываете пароль

  2 Или генерируете это сами, для этого надо всего лишь запустить скрипт:

#!/usr/bin/perl
print "Content-type: text/html\\n\\n";
print crypt(\'ваше слово-пароль из английских букв/цифр\', \'GK\');

Все. auth.pl кидаете в ту же папку, где лежит admin.cgi. Устанавливаете права 666 или 660
должно работать.


=================================================================
Советы, Рекомендации
=================================================================

1. Если есть возможность поставить пароль на всю папку, используя .htaccess, то, не задумываясь
 ставьте, auth-mod предоставляет намного худший вариант защиты,
 чем отработанная серверная технология с использованием .htaccess

Кроме того, auth-mod вносит дополнительную нагрузку на сервер (и увеличивает время выполнения скрипта),
 так как при каждом вашем тычке, скрипт вместо того, чтоб выполнять то, что от него требуется,
 будет пытаться идентифицировать вас:
 посмотрит cookies, проверит время, проверит ID сессии, обновит время, сгенерирует новый ID
 сесии, сохранит это, пошлет cookies вам, и лишь после этого :)
 будет делать то, что вы от него хотите.
--

2. Пароль обратно не расшифровывается :) Поэтому, если забудете, то придется вам сгенерировать
 и вписать в auth.pl новый пароль.
--

3. Ваш броузер должен принимать cookies
--

4. Время одной сессии 2 часа (по умолчанию). Т.е. если вы вошли,два часа
ничего в Админ.Центре не делаете,  то потом, когда вдруг всполошитесь и начнете делать,
придется входить по новой.

Данный лимит времени (время ожидания) можно уменьшить/увеличить, если вас не устраивают 2 часа.
Делается так:
строка 23: $time_limit= 2*3600;
меняем на свое значение, например 3*3600 - 3 часа (в секундах)
Увеличивать время ожидания не рекомендуется.
--

5. В АдминЦентре может находиться ТОЛЬКО 1 человек. Такая вот система безопасности :)
Вдвоем там работать невозможно, даже если у вас один пароль (а он и будет один) ;)
--

6. Если кто-то найдет серьезные огрехи и дыры в данной системе безопасности,
 сообщите пожалуйста об этом: gnezdo@webscript.ru
--

7. Со всеми вопросами, пожеланиями, предложениями идете на.. наш форум:
http://forums.webscript.ru


--
Администрация WebScript.Ru Network
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Paranoix от 25 Февраля 2002, 11:01:35
а у меня не работает! я ввожу пароль и попадаю на форму, спрашивающую пароль. Незнаю... у меня не стоит Update2.
Название: вопросы
Отправлено: Green Kakadu от 26 Февраля 2002, 02:40:09
Цитировать
я ввожу пароль и попадаю на форму, спрашивающую пароль.

1. правильно ли прописан зашифрованный пароль в auth.pl (рекомендую сначала поставить все по умолчанию, т.е. не менять там пароль - для логина вводите admin)

2. куки включены?

3. что за хостинг?

:) у меня работает исправно.
Название: a
Отправлено: alexxmfk от 26 Февраля 2002, 12:31:04
Меня тоже не пускает. Даже когда оставляю пароль по умолчанию.
Название: :) да
Отправлено: Green Kakadu от 26 Февраля 2002, 16:37:31
похоже, пускает только меня - посмотрю с чего это
Название: ИСПРАВЛЕНО
Отправлено: Green Kakadu от 26 Февраля 2002, 17:09:54
Ошибка вышла при написании readme. В файлах admin.cgi и com_admin.cgi
необходимо вставлять эти две строчки (вместо тех двух, о которых было написано ранее):

if ($in{\'login\'}){&check_login($in{\'pass\'});}
else {&check_user;}

все остальное то же.

Описание исправил. Дистрибутив с испрваленным readme закачан.
:) у меня такое бывает..
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Paranoix от 01 Марта 2002, 15:38:00
Ничего не понял... все равно не работает!
Название: :(
Отправлено: fred от 01 Марта 2002, 17:14:51
у меня тоже.... хотя мод скачал тока сегодня....
Название: а
Отправлено: Green Kakadu от 02 Марта 2002, 03:09:52
Цитировать
у меня тоже.... хотя мод скачал тока сегодня....

а ф-ция crypt у вас на сервере нормально работает (напнример на hut.ru нет)

#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
print \'

\';
print crypt(\'admin\', \'GK\');
print \'

\';

результат: GKydljZ1x/Jv.
т.е. как я понимаю, дальше окна с логином вас не пускает?
При этом включены куки, и используется IE?
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Paranoix от 02 Марта 2002, 10:47:02
Я пароль получал на webscipt.ru.

#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
print \'

\';
print crypt(\'admin\', \'GK\');
print \'

\';

У меня выдает $1$GK$p1yt9R0lVUJ7lHDrL5V.p.
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: NAS от 02 Марта 2002, 11:23:08
Paranoix

Сгенерируй пароль сам, на своем сервере.
У тебя по другому работает crypt, чем на webscript вот и не работает.
Название: ээ
Отправлено: Green Kakadu от 02 Марта 2002, 18:31:09
Цитировать
У тебя по другому работает crypt, чем на webscript вот и не работает

лучше сказать так - он у него не работает. На любой платформе (Win, Unix) должен быть один и тот же результат.
алгоритм шифрования один.
хотя можно и попробовать прописать тот, что сгенерится на этом нестандартном сервере.
тот скрипт - и есть генерилка паролей
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: fred от 04 Марта 2002, 16:00:39
Цитировать
т.е. как я понимаю, дальше окна с логином вас не пускает?
При этом включены куки, и используется IE?

Угу. Ослик 6...
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Green Kakadu от 05 Марта 2002, 13:25:12
Цитировать

т.е. как я понимаю, дальше окна с логином вас не пускает?
При этом включены куки, и используется IE?

Угу. Ослик 6...

А crypt нормально шифрует? Если нет, то пароль надо сгенерить на своем сервере (скрипт написан  выше)
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: от 10 Мая 2002, 21:28:11
Не понимаю почему, но ничего не палучается. Я всё сделал по инструксии но ... http://qartulicom.virtualave.net/cgi-bin/newsi/admin/admin.cgi здес парол: "admin"

Пажалуста помагите
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Green Kakadu от 11 Мая 2002, 15:14:22
Попробуйте то же что и тут:
http://forums.webscript.ru/showthread.php?s=&postid=24539#post24539

может у них этого тоже нет
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: rav3n от 23 Июня 2002, 23:22:10
Green Kakadu
по-моему, замороченный какой-то у тебя способ.
имхо, проще в сам скрипт вставить:


sub pw {
   if ($pass ne $log_config{pass}) {
   print header(
   -charset => "$Charset",
   -type => "text/html",);
&SetPageElements("Access denied. You\'ve entered wrong password");
   } else {
&cp
   }
exit;
}   


#кусок кода одного моего проекта...
при этом пасс лежит в самом скрипте, и там же правится. и вообще,
сервера ведь не дураки настраивают.
поэтому если будет файло pass.cgi, к примеру, и чмод 600, то никто его никогда и не увидит, даже если чмод будет 755, его все равно никто не увидит.
а излишняя паранойя лишь все усложняет. в конце концов, можно куки перехватить - раз. можно .pwl стащить - 2. (и что там есть .хтаксесс, что его нет. все равно многие ставят галку "запомнить пароль". а что такое виндовский пвл и как быстро он ломается ты знаешь не хуже меня, я думаю.
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: rav3n от 23 Июня 2002, 23:32:35
ЗЫ.
%log_config - хэш, где все это дело записано.
&SetPageElements - sr, отвечающий за вывод сообщений об эррорах, да вообще всех сообщений.
&cp - контрольная панель собсно:)
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Garris от 06 Декабря 2002, 14:32:40
Для тех, кто еще с этим столкнется...
У меня была та же проблема :)
суть ее в том, что после ввода пароля, надо не на клаве ентер нажимать, а мышью по кнопке кликать :) или таб-ентер... в общем фокус надо обязательно кнопке «LogIn!» передать... ИМХО конечно :)
Название: AUTH-MOD Sanitarium Security Solution ;)
Отправлено: Гость от 12 Марта 2003, 13:26:42
Error: [Wed Mar 12 13:26:09 2003] admin.cgi: Can not open GKNtWe8Imu13U, reason: Permission denied at auth.pl line 174.

Вот, что он мне выдает на впечатывание пароля.