Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация без MySQL, Можно? А как с безопаностью? 
:(
    Опции темы
Jey_k
Дата 21.9.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Хотелось бы примерчик рассмотреть. Особенно что касается безопасности.


--------------------
PM MAIL WWW   Вверх
-=Ustas=-
Дата 21.9.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Тоже самое что и с БД, только в файле. Т.е. получаем строки из файла с логином и паролем, и сверяем с введеными данными, если всё пучком, то регистрируем переменные сессии. При сохранении паролья md5-хеш обязателен.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
PARROT
Дата 21.9.2005, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Есть примерчик, но без безопасности, ее нужно дописывать. Нужен?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Anarki
Дата 21.9.2005, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



А о безопасности можно много говорить smile

1. Если хостер правильно выставил права, что у каждого юзера скрипт запускается под своим (uid),
то просто выставлять правильные права на файл. Скажем, rw------- (600) - только чтение пользователем-владельцем, то есть никто другой не сможет прочитать файл, не знаю насколько поможет и будет работать ли у хостеров, но можно попробовать. smile

2. Закинуть в папку .htaccess и запретить доступ через HTTP на этот файл.

3. Следующее - шифровать все пароли, хранящиеся в файле, скажем алгоритмом md5, а затем пришедший от пользователя пароль хешировать и сравнивать хеши.

Шифрование обязательно в любом случае, это предотвращает в какой-то мере хищение важной информации - паролей.

Это сообщение отредактировал(а) Anarki - 21.9.2005, 19:51


--------------------
PM WWW   Вверх
maugli
Дата 21.9.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



А обязательно ли хешировать пароли (если БД исплоьзуешь)? И скажите зачем вообще хешировать, как их украсть можно вооще? И если кто может, то дайте пожалуйста какой-нить мануал по безопасности веб-приложений. Заранее спасибо!!!
PM MAIL   Вверх
PARROT
Дата 21.9.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50





--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Jey_k
Дата 21.9.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Цитата(PARROT @ 21.9.2005, 17:43)
Есть примерчик, но без безопасности, ее нужно дописывать. Нужен?

Хотелось бы глянуть?


--------------------
PM MAIL WWW   Вверх
AntonioBanderaz
Дата 21.9.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Ну можно сделать отдельный файл, с именем как у юзера, в котором хранится пароль этого юзера.
Права доступа, только для root'а при открытии они меняются на 0777, производится чтение и снова для root'а.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 21.9.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Jey_k вот тебе пример с БД: http://vingrad.ru/PHP-ART-002849
тут правда есть пара недочетов...
1. mysql_real_escape_string нужен
2. BINARY при сравнении.

Что касается файла... Тут очень важно ограничить доступ к файлу на уровне сервера. Идеальный вариант - вынести его выше DocumentRoot, правда, туда и PHP должен добираться.
PM ICQ   Вверх
PARROT
Дата 21.9.2005, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Писала еще на курсах, но вроде работает.
Удаление тоже имеется, если что.
Код

<center>Регистрация нового пользователя<Form Method="POST">
Имя пользователя:<br><Input Type="text" Name="login" Value=""><Br>
Пароль:<Br><Input Type="password" Name="passw1" Value=""><Br>
Повторите пароль:<Br><Input Type="password" Name="passw2" Value=""><Br>
<Input Type="submit" name="send" Value="Add User">&nbsp;<Input Type="reset" Value="Очистить">
</Form>
<a href="del.php">Delete me from registration!</a>


</center>
<?php
if($send){

    if(!ereg("^[a-z0-9]+$", $login)){
        $error="Ошибка: Вы ввели недопустимое имя пользователя!<br>";
        }
    if(!ereg("^[a-z0-9]+$", $passw1)){
        $error.="Ошибка: Вы ввели недопустимый пароль!<br>";
        }
    if($passw1!==$passw2){
        $error.="Введите пароль правильно!";
        }

if(!$error){
    $data=file("users.txt");
    foreach ($data as $us){
    list($pass, $log)=split("\t", $us);
    if($log==$login){
        $er="Этот логин занят!!!";
        }
    
    }
    if(!$er){
    $dat=fopen("users.txt", "a");
    fwrite($dat, "$passw1\t$login\n");
    fclose($dat);
    }
    
}
else
{echo"$error";}
}
?>


Это сообщение отредактировал(а) PARROT - 21.9.2005, 21:39


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Jey_k
Дата 21.9.2005, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



PARROT
C регистрацией понятно, спасибо за интересный пример.

Мне интересно как грамотно обеспечить доступ к определенной странице через логин/пароль.
Например есть страница admin_page.php нужно чтобы она загружалась только при правильном вводе, например, на странице adm_auth.php. Особенно чтоб это было безопасно, при условии пользования файлом.


--------------------
PM MAIL WWW   Вверх
AntonioBanderaz
Дата 21.9.2005, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Цитата(Jey_k @ 21.9.2005, 22:05)
Особенно чтоб это было безопасно, при условии пользования файлом.

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

Храни и пароль в MD5, логин тоже можешь запихнуть под это дело.

А потом делай выборку файла
имя файла будет допустим - md5($username).$ext
и дальше проверяй если его содержание будет совподать с md5($userPass) - то регистрируется переменная сессии, и передаётся её индетификатор пользователю. Права только для чтения поставь.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Mal Hack
Дата 21.9.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(AntonioBanderaz @ 21.9.2005, 23:13)
Храни и пароль в MD5

Почитай тут в поиске. в md5 не безопасно уже хранить.
PM ICQ   Вверх
AntonioBanderaz
Дата 21.9.2005, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 18



Уже ломанули всё-таки....

ну тогда - mcrypt_ecb(MCRYPT_BLOWFISH,"некий ключ","некая строка",MCRYPT_ENCRYPT);
для расшифровки MCRYPT_DECRYPT. 448 бит

или для однонаправленного

mhash(MHASH_RIPEMD160,"некая строка"); 160 битный хеш.


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
PARROT
Дата 22.9.2005, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(Jey_k @ 21.9.2005, 23:05)
Мне интересно как грамотно обеспечить доступ к определенной странице через логин/пароль.
Например есть страница admin_page.php нужно чтобы она загружалась только при правильном вводе, например, на странице adm_auth.php. Особенно чтоб это было безопасно, при условии пользования файлом.

Ну это уже следующая стадия.
Пиши так, что если логин и md5(пароль) существует, записываем данные пользователя в куки и пускаем на страницу.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.