Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Аутентификация и авторизация пользователей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: кроссплатформенное программирование, работа в виде веб-сервиса
GronZo
Отправлено: 21 Октября, 2012 - 14:12:54
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Добрый день уважаемые пользователи форума.

Стоит задача:
Авторизация, аутентификация пользователей с последующим доступом к БД.

Что имеется:
БД MySql (включая таблицу пользователей с login и password (в md5 конечно)

Проблема:
Ну никак не могу вкурить каким образом это реализовать.
Т.е. по http-запросу со стороннего приложения (не php) пользователям требуется отдавать различные данные с БД (либо обновлять данные пользователя в БД, либо добавлять новые данные в БД). Возвращать данные, я так понимаю, лучше всего в формате JSON, затем парсить их и т.п. (это уже проблема клиентской части).

Не могу понять, как же все таки защитить серверную часть на php от прямых запросов в url'е, как исключить возможность явных sql-инъекций.

PS: прочитал гору уроков и мануалов, но что-то в голове все никак не устаканится. Помогите, уважаемое сообщество, разобраться в столь простом для вас, и сложном для меня деле.
 
 Top
Мелкий Супермодератор
Отправлено: 21 Октября, 2012 - 15:40:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




GronZo пишет:
как же все таки защитить серверную часть на php от прямых запросов в url'е

А зачем?

GronZo пишет:
как исключить возможность явных sql-инъекций.

Так же, как обычно. Препарированные запросы или экранирование.


-----
PostgreSQL DBA
 
 Top
GronZo
Отправлено: 21 Октября, 2012 - 16:56:32
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Цитата:

как же все таки защитить серверную часть на php от прямых запросов в url'е

А зачем?


в смысле зачем? передавая post'ом параметры в скрипт , в url можно подставить всё что угодно, что чревато злоупотреблением со стороны пользователей
 
 Top
Мелкий Супермодератор
Отправлено: 21 Октября, 2012 - 17:07:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Вы должны штатно отвечать ошибкой на неправильное действие пользователя. Всё, и пускай запрашивают что угодно и как угодно.


-----
PostgreSQL DBA
 
 Top
GronZo
Отправлено: 21 Октября, 2012 - 17:18:24
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




хорошо, попробую сформулировать по-другому:
юзер авторизуется посылая свои данные через post скрипту php, после этого его надо как то сохранить в статусе онлайн (я подозреваю что требуется сессия), но при выполнении скриптов на add/edit/delete в БД все данные передаются опять в url через post. Т.е. любой человек, даже не авторизованный может забить любые данные в url и "побить" базу данных анонимно.

Как сделать проверку? Проверять наличие сессии?
 
 Top
Мелкий Супермодератор
Отправлено: 21 Октября, 2012 - 19:35:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну разумеется. При авторизации вешаете сессию (штатную сессионную куку или авторизационный токен), потом его проверяете.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB