


Правильно ли я сделал - $fname = mysql_real_escape_string($_POST['kor_post']);
хватит ли этого чтобы обезопасить то что поступит в таблицу
Для PHP 4 - да, правильно. Для PHP 5 - устарело и категорически не рекомендуется. А в PHP 7 функции mysql_real_escape_string вообще не существует.
Зато есть библиотеки http://php.net/manual/ru/class.pdo.php и http://php.net/manual/ru/book.mysqli.php
В которых есть такая замечательная вещь, как http://php.net/manual/ru/pdo.prepared-statements.php и http://php.net/manual/ru/mysqli.quickstart.prepared-statements.php
Раз никто по теме нормально не смог ответить, то отвечу тогда я :)
Не знаю можно ли кидать ссылку на видео. Надеюсь никого не обижу:
https://school-php.com/courses/php-i-mysql-programmirovanie-s-nulya/урок-20/php-mysql-работа
Вот тут я показываю как писать mysqli_real_escape_string для безопасности. То есть именно библиотеку mysqli_* , а не mysql_ .
Хочу заметить, что real_escape_string экранирует кавычки, то есть запросы без кавычек как бы не экранируются.
SELECT *
FROM `users`
WHERE `id` = ".$_POST['id']."
В данном запросе ты можешь увидеть то, что передаётся цифра 5 и получается
WHERE `id` = 5
Но если вписать 0 or 1=1, то получим запрос
SELECT *
FROM `users`
WHERE `id` = 0 or 1=1
Что приведет к уязвимости! Применения очень обширные, доступ к непредвиденным данным
Приведение к типу решает эту проблему, для чисел пишешь (int), (float), для строк, которые записываются в запросе в кавычках - real_escape_string .
Хватит, но лучше использовать связанные переменные (параметры запроса), тогда никакой escape не нужен.