Страница 1 из 1

Админка в пхп

Добавлено: 2008-02-14 8:06:28
ADRE
Интересует кто как делает, посмотрел в классической книжке: лаура томпсон и люк веллинг. там все через сессии, на самом деле интересует как сделать с куки, ну естественно проверочки там разные =), поковырял слаед, нюку, конечно можно тупо скопировать и подпилить под себя, но кто-то говрил легких путей не бывает... если кто этим занимался подскажите что проверять то? :roll:

Re: Админка в пхп

Добавлено: 2008-02-14 10:19:47
Alex Keda
писать юзеру некую строку, её же хранить на сервере.

Re: Админка в пхп

Добавлено: 2008-02-14 10:55:24
ADRE
=) эх думал еще какие интересные вещи есть, не так нет :roll:
пайду валенки корче покупать зае***** мерзнуть... то тепло то холод...

Re: Админка в пхп

Добавлено: 2008-02-14 12:41:41
Alex Keda
ADRE писал(а):=) эх думал еще какие интересные вещи есть, не так нет :roll:
пайду валенки корче покупать зае***** мерзнуть... то тепло то холод...
ну а что ещё придумать?
могу посоветовать добавить колонку с временем жизни кукиса и с временем установки на сервер - и проверять по ним - не полагаясь на клиента...
но это уже изврат....

Re: Админка в пхп

Добавлено: 2008-02-14 18:52:16
zg
ADRE писал(а):Интересует кто как делает, посмотрел в классической книжке: лаура томпсон и люк веллинг. там все через сессии, на самом деле интересует как сделать с куки
а ты знаешь для чего нужны куки и зачем была придумана сессия?

гвозди можно и головой забивать, но почему-то все молотком пользуются...

если ты начинаешь изучать пхп, то ради экспы можешь попробовать так и так, но если будешь давать жизнь своим скриптам, то авторизуй только через сессию!

Re: Админка в пхп

Добавлено: 2008-02-14 19:24:16
Alex Keda
а запоминать как?

Re: Админка в пхп

Добавлено: 2008-02-14 19:41:44
zg
lissyara писал(а):а запоминать как?
ну да, кука самое место для хранения паролей :P

если уж на то пошло, то юзать встроеные средства браузера для автозаполнения логин-форм

Re: Админка в пхп

Добавлено: 2008-02-14 20:40:03
hizel
ммм поповоду сессий лучше погуглить perl and sessions
в форумах народ обсуждает реализацию и теорию
например
http://forum.vingrad.ru/forum/topic-133 ... D0%B8.html
и
http://www.linux.org.ru/view-message.jsp?msgid=1926749
хинт: осторожно ЛОР

а в пых-пыхе помоиму это делается встроенными средствами
поэтому половина пэхапистов чокчиму не знает
но пользует

Re: Админка в пхп

Добавлено: 2008-02-14 20:52:09
paranoidchaos
а ещё лучше использовать базовую авторизацию

и не париться о сохрания сессий на сервере или кукисов у пользователя

Re: Админка в пхп

Добавлено: 2008-02-14 20:55:34
Alex Keda
lissyara писал(а):писать юзеру некую строку, её же хранить на сервере.
про пароль тут не было ни слова.
вот строка генриться после проверки пароля - но к паролю отношения может не иметь.
просто идентификатор дающий на некторое время тебе лазить без ввода пароля.

Re: Админка в пхп

Добавлено: 2008-02-15 6:29:00
ADRE
ПРо строку - классика, подбором печально будет все это дело отгадывать, с сессиями как-то странно получается, они присваивают челвеку кукисы на сессию(так понимаю), так зачем заморачиваться с сессией когда присвоил куки челвеку, засунул туда шифрованный пароль,добавочные левые символы для проверки , все это в бд засунул, потом проверил, в кукисах поставил жизнь на 45 минут.
----------------------------------------------------
з.ы как всегда нормально вопрос не сформулировал, интересует подмена глобальных массивов $_post, $_get, $_cookie. чем их смотреть, фильтровать,(методика =)) или только определением их типа + фильтр буковок которых там не может быть?

посмотрю в инетике может кто выкладывал описание по созданию мега админки. =)

Re: Админка в пхп

Добавлено: 2008-02-15 9:00:16
zg
ну давай пиши мега админку на куках :D флаг тебе в руки, только запомни - кукам нельзя доверять :wink:

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

Любые поптыки засунуть признак "авторизованности" на сторону клиента есть потенциальная уязвимость, а если для этого используются куки, то это "мегадырень" в "мегаадминке".

Re: Админка в пхп

Добавлено: 2008-02-15 9:25:01
Alex Keda
собсно - строку я предлагал случайную делать - мегахакеру её взять просто неоткуда, время жизни куки тоже предложил отдельно хранить на сервере.
собсно - граблей не вижу...

Re: Админка в пхп

Добавлено: 2008-02-15 19:56:13
zg
lissyara писал(а):собсно - строку я предлагал случайную делать - мегахакеру её взять просто неоткуда, время жизни куки тоже предложил отдельно хранить на сервере.
собсно - граблей не вижу...
Лис, ты изобрёл сессию, поздравляю :)

Идентификатор сессии передаётся через куку, если кука не поддерживается то через урл (это контролирует пхп). Время жизни сессии контролируется сервером, устаревшие сессии не стартуют и удаляются по мере необходимости. Номер сессии уникален и генерируется случайным образом, поэтому подделать актуальный номер невозможно. Насколько я помню, для сессии так же важен ip, с которого она была запущена и тот, с которого она используется, с левых ip запускается новая сессия, но могу и ошибаться.

Таким образом идея о "случайной строке" в куках уже давно реализована и успешно работает и имя ей "сессия" :).

Re: Админка в пхп

Добавлено: 2008-02-15 21:54:16
Alex Keda
идей хороших не много.
поэтому все, разными путями, приходят именно к ним =)

Re: Админка в пхп

Добавлено: 2008-02-15 23:19:28
BlackCat
zg писал(а):Насколько я помню, для сессии так же важен ip
IP, к сожалению пхп не проверяет (эту проверку придется вручную делать).
=====
Что бы долго не спорить о сессиях, можно почитать раздел "сессии" в официальной докумментации на http://www.php.net - очень много полезных сведений.
=====
ADRE, просто напишите пару админок, а там и понимание придет ;-)

Re: Админка в пхп

Добавлено: 2008-02-18 4:51:47
ADRE
дык чтоб самому написать много времени надо, занимаюсь их расковыриванием, тогда приходит и понимание =)) благо Гнутых систем не мало

Re: Админка в пхп

Добавлено: 2008-02-18 8:49:05
zg
ADRE писал(а):благо Гнутых систем не мало
phpBB2 написан очень неплохо, pma, можно глянуть иногда (но не увлекаться)

но всё равно, пока не попробуешь сам написать, будет лишь иллюзия понимания :)

Re: Админка в пхп

Добавлено: 2008-02-18 9:12:59
ADRE
zg писал(а):
ADRE писал(а):благо Гнутых систем не мало
phpBB2 написан очень неплохо, pma, можно глянуть иногда (но не увлекаться)

но всё равно, пока не попробуешь сам написать, будет лишь иллюзия понимания :)
дык согласен =) а как еще начинать, не читать же гору книжек =/
====================
если еть что интересное посмотреть выкладывай )

Re: Админка в пхп

Добавлено: 2008-02-18 11:12:23
zg
Скрипт авторизовалки

Код: Выделить всё

<?
// auth.php

// Если сессия не запущена, то запускаем её
if ( !session_id() ) session_start();

// Пользователь уже авторизован
if ( isset($_SESSION['AUTH_OK']) && $_SESSION['AUTH_OK'] ) return true;

// Пользователь пытается авторизоваться
if ( isset($_POST['login']) )
{
	if ( checkLogin( $_POST['login'], $_POST['passw'] ) )
		return true;
	else 
		echo '<div style="color: red"><b>Неверный логин или пароль</b></div>';
}

// Вывод формы логирования
loginForm();
exit();


/**
 * Вывод формы логирования
 *
 * @return void
 */
function loginForm()
{
?>
<form method="POST">

<label for="login">Логин</label> <input id="login" name="login" /><br />
<label for="passw">Пароль</label> <input type="password" id="passw" name="passw" /><br />

<input type="submit" value="Login" />

</form>
<?
}

/**
 * Проверка логина и пароля
 *
 * @param string $login
 * @param string $passw
 * @return bool
 */
function checkLogin( $login, $passw )
{
	if ( 'root' === $login && 'root' === $passw )
	{
		$_SESSION['AUTH_OK'] = true;
		return true;
	}
	
	return false;
}

?>


использование

Код: Выделить всё

<?
// Авторизация
include('auth.php');

?>
Закрытая часть админки


это одно из самых простых и надёжных решений, поскольку конечный пользователь даже не знает каким образом и какой скрипт его авторизует, ведь его авторизует именно тот раздел, куда он пришёл, и стало быть ни каких редиректов :)

Re: Админка в пхп

Добавлено: 2008-02-19 4:17:00
ADRE
На досуге посмотрю, поковыряю другие выложу =) на просмотр...