Приветики! Я пишу приложение у которого есть что-то типа админцентра. И пытаюсь его хоть както защитить.
Начала сравнивать ExBB и столкнулась вот с чем. При удачной попытке логина администртора регистрируется $_SESSION['admin'] - для чего? Дальше как она используется? И как вообще можно защитить админку кроме пароля? Достаточно ли проверок на такую сессионную переменую?
И второй вопрос. После логина юзера, что писать в куки? его id ведь недостаточно? можно легко подставить! Помогайте, вся уже замучалась!
1. Виктория - 29 апреля 2011 — 21:37 - перейти к сообщению
2. BON - 29 апреля 2011 — 21:47 - перейти к сообщению
Виктория пишет:
И как вообще можно защитить админку кроме пароля?
защищайте средствами .htaccess
Виктория пишет:
И второй вопрос. После логина юзера, что писать в куки? его id ведь недостаточно? можно легко подставить!
это стучите к Юре в личку
3. Виктория - 29 апреля 2011 — 21:50 - перейти к сообщению
BON пишет:
защищайте средствами .htaccess
спасибо, а где можно про это доходчиво почитать?
4. BON - 29 апреля 2011 — 22:37 - перейти к сообщению
Виктория, тут на форуме через поиск поищите на раз обсуждалось. Защита средствами .htaccess выполняется со стороны сервера.
5. 1Bot - 29 апреля 2011 — 23:45 - перейти к сообщению
Виктория пишет:
Начала сравнивать ExBB и столкнулась вот с чем. При удачной попытке логина администртора регистрируется $_SESSION['admin'] - для чего? Дальше как она используется? И как вообще можно защитить админку кроме пароля? Достаточно ли проверок на такую сессионную переменую?
И второй вопрос. После логина юзера, что писать в куки? его id ведь недостаточно? можно легко подставить! Помогайте, вся уже замучалась!
И второй вопрос. После логина юзера, что писать в куки? его id ведь недостаточно? можно легко подставить! Помогайте, вся уже замучалась!
Если работаете через механизм сессий, то куки сохраняются автоматически при открытии сессии.
Виктория пишет:
где можно про это доходчиво почитать?
Почитайте книги Котерова (одного из авторов Денвера) по PHP, да и любая книга по языку не обходит стороной механизмы защиты.
6. igrok54 - 30 апреля 2011 — 11:58 - перейти к сообщению
Виктория пишет:
При удачной попытке логина администртора регистрируется $_SESSION['admin'] - для чего? Дальше как она используется? И как вообще можно защитить админку кроме пароля? Достаточно ли проверок на такую сессионную переменую?
Насколько я в курсе, существует два способа авторизации - с помощью сессий и с помощью куков.
Самая простая авторизация с помощью сессий делается через использование связки файлов .htaccess и .htpasswd и не требует никаких дополнительных скриптов. Авторизация через сессии действует до закрытия браузера пользователем. Кроме того, существует возможность реализации авторизации по такому же принципу без использования файла .htpasswd - вместо него используется php-скрипт.
Авторизация через простановку кукисов - примеров в инете много.
Виктория пишет:
И второй вопрос. После логина юзера, что писать в куки? его id ведь недостаточно? можно легко подставить! Помогайте, вся уже замучалась!
Пишите только самое необходимое, чем меньше инфы будет храниться в куки, тем сложнее взломать через украденный кукис. Шифруйте данные, хранящиеся в нем. Связка логин-пароль в незашифрованном виде записывающиеся в куки можно считать дырой в безопасности.
Если нужно - могу поделиться работающими вариантами скриптов авторизации всех описанных типов.
7. Виктория - 1 мая 2011 — 15:44 - перейти к сообщению
1Bot пишет:
Если работаете через механизм сессий, то куки сохраняются автоматически при открытии сессии.
немножко не поняли вы меня...
1Bot пишет:
Почитайте книги Котерова (одного из авторов Денвера) по PHP, да и любая книга по языку не обходит стороной механизмы защиты.
Спасибо, посмотрю.
igrok54 пишет:
Пишите только самое необходимое, чем меньше инфы будет храниться в куки, тем сложнее взломать через украденный кукис. Шифруйте данные, хранящиеся в нем. Связка логин-пароль в незашифрованном виде записывающиеся в куки можно считать дырой в безопасности.
Просто речь идет вот о чем. Авторизацию я сделала через сессии. Юзер логинится,
md5($_POST['pas']) сравнивается с хранимым паролем в БД, также проверяя соответствует ли введеный емайл, емэйлу хранимомому в БД. Если все ок, я стартутую сессию и кладу туда user['id']. В родительском классе есть функция, которая уже возвращает ассоциативный масив со всеми данными этого юзера. Дак вот. Везде, где мне надо проверить залогинился ли пользователь, я проверяю наличае этого массива (который заполнен от сессионой перименной с айди юзера) и вот теперь речь о куках! Функционал "запомнить меня" при логине я сделала так. В момент авторизации кладу в куку тотже айди и все, а потом уже проверяю: если в куках есть айди, то взять от туда, если нет, то из сессии, а иначе гость.
Виктория пишет:
что писать в куки? его id ведь недостаточно?
Вот он и вопрос. Достаточно ли там id или это легко подменить и зайти под кем угодно? Что туда еще писать, может md5 пароля?
Извините за длинную тираду
8. BON - 1 мая 2011 — 16:03 - перейти к сообщению
Виктория, покажите ваш форум !
9. Виктория - 1 мая 2011 — 16:12 - перейти к сообщению
BON хм, это не форум, это совершенно другое приложение. И оно пока токо на локальной машине.
(Добавление)
Так выглядит метод login_user
(Добавление)
Так выглядит метод login_user
login_user (Отобразить)
10. BON - 1 мая 2011 — 16:36 - перейти к сообщению
Виктория, а что это тогда будет? мря прямо интересно
11. Виктория - 1 мая 2011 — 16:41 - перейти к сообщению
Это будет очень полезный инструмент, которым будут пользоваться многие люди. Секреты пока не раскрываю. Старт намечен на 1 июня.
12. BON - 1 мая 2011 — 21:45 - перейти к сообщению
Виктория, а ваш интсрумент будеи платно или бесплатно распространяться?
13. shyuser - 1 мая 2011 — 22:49 - перейти к сообщению
Виктория, при регистрации пользователя генерируется ключ и добавив его к паролю кодируем md5. В куки добавляем и логин и пароль, но при этом правильность пароля пользователя можно проверить только зная ключ, который хранится на сервере.
Вот часть кода, несколько функций, которые я набросал для своего сайта. Пока только начинаю в php, поэтому не судите строго. Может пригодится.
Вот часть кода, несколько функций, которые я набросал для своего сайта. Пока только начинаю в php, поэтому не судите строго. Может пригодится.
код (Отобразить)
14. igrok54 - 1 мая 2011 — 23:32 - перейти к сообщению
Виктория пишет:
Авторизацию я сделала через сессии. Юзер логинится,
md5($_POST['pas']) сравнивается с хранимым паролем в БД, также проверяя соответствует ли введеный емайл, емэйлу хранимомому в БД. Если все ок, я стартутую сессию и кладу туда user['id']. В родительском классе есть функция, которая уже возвращает ассоциативный масив со всеми данными этого юзера. Дак вот. Везде, где мне надо проверить залогинился ли пользователь, я проверяю наличае этого массива (который заполнен от сессионой перименной с айди юзера) и вот теперь речь о куках! Функционал "запомнить меня" при логине я сделала так. В момент авторизации кладу в куку тотже айди и все, а потом уже проверяю: если в куках есть айди, то взять от туда, если нет, то из сессии, а иначе гость.
md5($_POST['pas']) сравнивается с хранимым паролем в БД, также проверяя соответствует ли введеный емайл, емэйлу хранимомому в БД. Если все ок, я стартутую сессию и кладу туда user['id']. В родительском классе есть функция, которая уже возвращает ассоциативный масив со всеми данными этого юзера. Дак вот. Везде, где мне надо проверить залогинился ли пользователь, я проверяю наличае этого массива (который заполнен от сессионой перименной с айди юзера) и вот теперь речь о куках! Функционал "запомнить меня" при логине я сделала так. В момент авторизации кладу в куку тотже айди и все, а потом уже проверяю: если в куках есть айди, то взять от туда, если нет, то из сессии, а иначе гость.
Землячка , какой смысл делать двойное хранение авторизации - и в сессии и в куки? Зачем? Поясните, плиз, Ваше мнение.
15. Виктория - 2 мая 2011 — 10:20 - перейти к сообщению
BON пишет:
Виктория, а ваш интсрумент будеи платно или бесплатно распространяться?
BON он вообще не будет распространятся. Он будет в единственном экземпляре. Участие в проекте полностью бесплатно.
shyuser пишет:
при регистрации пользователя генерируется ключ и добавив его к паролю кодируем md5. В куки добавляем и логин и пароль, но при этом правильность пароля пользователя можно проверить только зная ключ
Вот это очень хорошо! Чтото подобное сделано и в ExBB, только ключ похоже тоже стоит в куки писать. спасибо.
shyuser пишет:
Вот часть кода, несколько функций, которые я набросал для своего сайта.
Ваши функции предназначены для работы с файлами, а я использую бд, про "соль" конечно знаю.
igrok54 пишет:
какой смысл делать двойное хранение авторизации - и в сессии и в куки?
Хм, сессия живет до закрытия страницы в браузере а у кук указано время жизни.
Цитата:
setCookie("tid", $user['id'], time() + 31104000, "/"