Очистка данных на PHP перед вставкой в базу данных MySQL и при извлечении из нее, подробно с примерами
- Подробности
- Категория: PHP
- Просмотров: 165
Всегда нужно очищать данные при работа с БД, чтобы некий хитрый хакер не положил туда что-нибудь...
Очистка данных перед вставкой в базу данных MySQL и при извлечении из нее является важным шагом для обеспечения безопасности и целостности данных.
В PHP для этого можно использовать функции mysqli_real_escape_string() и htmlspecialchars().
mysqli_real_escape_string() используется для экранирования специальных символов, таких как кавычки, перед вставкой данных в базу данных. Пример:
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
htmlspecialchars() используется для преобразования специальных символов в их HTML-сущности, чтобы предотвратить XSS-атаки при выводе данных на страницу. Пример:
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
echo "<p>Name: $name</p>";
echo "<p>Email: $email</p>";
При извлечении данных из базы данных также необходимо проводить очистку данных. Для этого можно использовать функцию htmlspecialchars_decode(), которая преобразует HTML-сущности обратно в специальные символы. Пример:
$name = htmlspecialchars_decode($row['name']);
$email = htmlspecialchars_decode($row['email']);
echo "<p>Name: $name</p>";
echo "<p>Email: $email</p>";
Также можно использовать функцию strip_tags(), которая удаляет все HTML и PHP-теги из строки. Пример:
$name = strip_tags($row['name']);
$email = strip_tags($row['email']);
echo "<p>Name: $name</p>";
echo "<p>Email: $email</p>";
Важно помнить, что очистка данных не является единственным способом защиты от атак на базу данных. Необходимо также использовать другие методы, такие как подготовленные запросы и хеширование паролей.