Опасно ли прямой запрос в базу данных ?

InstantCMS 2.X

Опасно ли прямой запрос в базу данных ?

#1 5 сентября 2023 в 06:13

Всем привет!
краткая история - 
есть два сайта — один на основном домене, другой на поддомене, обои на последней версии движка, у каждого своя база данных
мне нужно получить данные пользователя из основного сайта на сайт который в поддомене, 
на сайте в поддомене который, я написал напрямую запрос в базу основного сайта и получаю данные пользователя нужного, всё работает
то есть прописываю напрямую типа так - 

  1. <?php
  2. $host = 'localhost';
  3. $user = '********';
  4. $pass = '********';
  5. $db_name = '*******'; // Имя базы данных
  6. $link = mysqli_connect($host, $user, $pass, $db_name); // Соединяемся с базой
  7.  
  8. // Ругаемся, если соединение установить не удалось
  9. if (!$link) {
  10. echo 'Не могу соединиться с БД. Код ошибки: ' . mysqli_connect_errno() . ', ошибка: ' . mysqli_connect_error();
  11. exit;}
  12.  
  13. $user_data_podersh_do = mysqli_query($link, "SELECT `data_podderska` FROM `cms_users` WHERE email='$user_email'");
  14. $row = mysqli_fetch_assoc($user_data_podersh_do);
  15. $data_user_podder_do = $row['data_podderska'];
  16. $date_podd_format = (new DateTime($data_user_podder_do))->Format('d.m.Y');
  17. echo $date_podd_format;
  18.  
  19. ?>
  20.  

всё работае как нужно, но так как только начал разбирается с базой, сомнения вообще правильный ли подход? какие последствия для безопасности? как по другому по правильному сделать ?
хотел через API но не нашел метода получения списка пользователей в компоненте от разработчиков
заранее спасибо

 


Добавлено спустя 11 часов

решил все таки делать через API — метод получение с другого сайта пользователей написал сам, работает, и вывести данные пользователей то же получилось на сайт донор, но вопрос по базе  данных что выше остаются открытым, спасибо

#2 5 сентября 2023 в 07:10

сомнения вообще правильный ли подход?

No Name

Для самописного сайта — правильный, но для любой cms правильнее использовать имеющуюся модель для работы с базой данных.

какие последствия для безопасности?

No Name

В данном случае никаких, если:

1. вы уверены, что к данному файлу никто из посторонних не имеет доступа и не сможет прочитать ваши доступы к базе укзанные в нем;

2. вы уверенны, что в переменную $user_email прилетит только email и ничто другое, что пользователь может забить себе в поле с email.

как по другому по правильному сделать ?

No Name

Продолжать дальше разбираться с базой и понимание прийдет.

#3 5 сентября 2023 в 11:34

вы уверенны, что в переменную $user_email прилетит только email и ничто другое

Loadырь

валидатор в настройке поля включён на email, этого хватит ?

#4 5 сентября 2023 в 22:06

Если в переменную в запросе передаются данные прошедшие проверку, то переживать не о чем.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.