#php #mysql
#php #mysql
Вопрос:
Я создаю систему бронирования для некоторых студенческих домиков.
Пользовательский контроль должен быть строгим, чтобы никакие посторонние люди не могли использовать систему. Последняя система была на сервере университета и подключена к базе данных (которая должна быть расположена на сервере университета, не спрашивайте почему!). Безопасность сервера плохая (каждый пользователь может, с некоторыми навыками, просматривать содержимое php-файлов). Мы решили перенести наш сайт на внешний сервер для повышения безопасности. Проблема в том, что университетский сервер не разрешает внешний доступ к базе данных. Перейдем к проблеме:
Альтернатива 1: я хочу регулярно обновлять базу данных на внешнем сервере, чтобы она соответствовала таблице пользователей в базе данных на сервере университета.
Альтернатива 2: При входе пользователя в систему я хочу проверить учетные данные с помощью скрипта, расположенного на сервере университета.
Каков мой наилучший подход и как мне следует подойти (некоторые детали были бы оценены)?
Ответ №1:
Что ж, ваши проблемы легко решаются с помощью скриптов на удаленном сервере.
Создайте один для дампа и вывода запроса пользовательской таблицы (и импортируйте этот дамп на свою сторону), а другой для получения логина и пароля, сверьте их с текущей базой данных, а затем выведите результат проверки.
Однако не беспокойтесь о безопасности. Особенно с этим сценарием дампа базы данных.
О, это была альтернатива, а не «мне нужны оба». В таком случае я бы, конечно, выбрал № 2. Это правильный и безопасный способ сделать это.
Комментарии:
1. Каков наилучший способ вызвать этот скрипт и проанализировать данные взад и вперед?
2. Я бы, вероятно, использовал json. Его легко анализировать с помощью встроенных функций php. Скрипт на удаленном сервере примет хэш пароля администратора некоторую определенную соль имя пользователя и пароль пользователя, чтобы убедиться, что запрос пришел от вас (если возможно, я бы также проверил ip вызывающего абонента). И, конечно, имя пользователя и пароль. Если все правильно — он будет выводить массив данных в кодировке json из пользовательской таблицы (или просто true / false, если это только то, что вам нужно).