Я рекомендую создать API на вашем веб-сайте на PHP и вызывать API из Delphi.
Таким образом, база данных доступна только вашему веб-серверу, а не клиентскому приложению. Фактически вы должны запустить свою базу данных на локальном хосте или с частным IP-адресом, чтобы к ней могли обращаться только машины в одной физической сети.
Я реализовал это и внедряю снова, как мы говорим.
PHP
Создайте новый файл с именем register_config.php. В этом файле настройте информацию о соединении MySQL.
Создайте файл с именем register.php. В этом файле поместите ваши регистрационные функции. Из этого файла включите «register_config.php». Вы передадите параметры созданным здесь функциям, и они будут выполнять чтение и запись в вашу базу данных.
Создайте файл с именем register_api.php. Из этого файла включите «register.php». Здесь вы будете обрабатывать переменные POST или GET, которые отправляются из вашего клиентского приложения, вызывать функции в register.php и возвращать результаты обратно клиенту, все через HTTP.
Вам придется исследовать подключение к базе данных MySQL и запрос к ней. В учебниках W3Schools вы сделаете это очень быстро.
Например:
Ваша Delphi-программа вызывает https://mysite/register_api.php с помощью Post () и отправляет следующие значения:
name=Marcus
email=marcus@gmail.com
Вот как может выглядеть начало register_api.php:
// Our actual database and registration functions are in this library
include 'register.php';
// These are the name value pairs sent via POST from the client
$name = $_POST['name'];
$email = $_POST['email'];
// Sanitize and validate the input here...
// Register them in the DB by calling my function in register.php
if registerBuyer($name, $email) {
// Let them know we succeeded
echo "OK";
} else {
// Let them know we failed
echo "ERROR";
}
Delphi
Используйте компонент Indy TIdHTTP и его метод Post () или Get () для публикации данных в register_api.php на веб-сайте.
Вы получите ответ в тексте от вашего API.
Будьте проще.
Безопасность
Все проверки должны выполняться на сервере (API). Сервер должен быть привратником.
Очистите все входные данные API от пользователя (клиента) перед вызовом каких-либо функций, особенно запросов.
Если вы используете общий веб-хостинг, убедитесь, что register.php и register_config.php не доступны для чтения во всем мире.
Если вы передаете конфиденциальную информацию, и она звучит так, как вы, вам следует вызвать функцию регистрации API из Delphi через HTTPS. HTTPS обеспечивает сквозную защиту, так что никто не может прослушивать данные, передаваемые по проводам.
Просто подключите компонент TIdSSLIOHandlerSocketOpenSSL к вашему компоненту TIdHTTP, и все готово, за исключением проверки сертификата.
Используйте событие OnVerifyPeer компонента SSL, чтобы написать собственный метод проверки сертификата. Это важно. Если вы не подтвердите сертификат на стороне сервера, другие сайты могут выдавать себя за отравление DNS и собирать данные от ваших пользователей, а не от вас. Хотя это важно, не позволяйте этому удерживать вас, так как это требует немного большего понимания. Добавьте это в будущей версии.