Mysqli_real_escape_string — это встроенная функция PHP, которая используется для управления нежелательными и опасными символами. В этой статье мы обсудим на примере, что такое функция mysqli_real_escape_string и как ее можно использовать для защиты базы данных.
Что такое mysqli_real_escape_string
По определению mysqli_real_escape_string () позволяет специальным символам в строке перемещаться в базу данных с помощью запроса SQL, принимая во внимание текущий набор символов установленного соединения. Проще говоря, эта функция позволяет рассматривать специальные символы как часть строки и сохранять в базе данных как строку. Хакеры в основном используют специальные символы, такие как?, ’, ^,% И!, Для взлома базы данных или неправильного использования данных базы данных, поэтому для предотвращения этого действия используется эта функция, которая заставляет PHP считаться только строка. Общий синтаксис этой функции следующий:
mysqli_real_escape_string(connection_variable, string_variable)
В общем синтаксисе connection_variable является результатом функции mysqli_connect (), хранящейся в любой переменной, а string_variable- это переменная, которая должна проходить через эту функцию для экранирования символов. Например, мы создаем код PHP, в котором сначала мы устанавливаем соединение PHP с базой данных с помощью функции mysqli_connect () с параметрами localhost; база данных находится на той же машине, имя пользователя; маади, пароль; qwer1234 и имя базы данных; Организация. Затем мы применили условие if-else, чтобы проверить, успешно ли установлено соединение, с помощью функции mysqli_real_escape_string (connection_variable, string_variable). После обеспечения успешного установления соединения мы объявим переменную с именем Firstname и присвоим некоторую строку, содержащую некоторый специальный символ, а затем вставим ее в базу данных Linuxhint.
<?php
//Establishment of Connection with databas
$connection = mysqli_connect(«localhost»,«maadi»,«Organization»);//checking status of connection
if (mysqli_connect_errno()) {
echo «Failed to connect to MySQL: « .mysqli_connect_error();
exit();
}
//declare variable
$firstname2 =«John’o Alexander»;//inserting into the database
$sql=«INSERT INTO Linuxhint (Emp_name) VALUES (‘$firstname2‘)»);//execution of mysql queries
$r = mysqli_query($connection, «INSERT into Linuxhint VALUES (‘firstname2’)»);
if(!$r){
print(«Error occurred\n«);
}
else{
print(«Record inserted successfully\n«);
}
//connection closed
mysqli_close($connection);
?>
Результатом этого кода должна быть ошибка, потому что строка содержит специальный символ ’между ними. Чтобы проверить вывод, откройте терминал в Ubuntu и запустите этот файл PHP с помощью команды php с именем файла, в котором сохранен код.
$ php file1.php
Произошла ошибка, чтобы исправить эту ошибку, мы воспользуемся mysqli_real_escape_string () и сохраним строку в базе данных.
<?php
//Establishment of Connection with databas
$connection = mysqli_connect(«localhost»,«maadi»,«Organization»);//checking status of connection
if (mysqli_connect_errno()) {
echo «Failed to connect to MySQL: « .mysqli_connect_error();
exit();
}//declare variable
$firstname2 =«John’o Alexander»;//pass from the mysqli_real_escape_string()
$firstname = mysqli_real_escape_string($connection,$firstname2);
//inserting into the database
$sql=«INSERT INTO Linuxhint (Emp_name) VALUES ( ‘$firstname‘ )»);//execution of mysql queries
$r = mysqli_query($connection, «INSERT into Linuxhint VALUES (‘firstname’)»);
if(!$r){
print(«Error occurred\n«);
}
else{
print(«Record inserted successfully\n«);
}
//connection closed
mysqli_close($connection);
?>
Снова запускаем файл в терминале.
$ php file1.php
Выход успешен. Чтобы проверить это, мы перейдем к MySQL и выполним следующую команду, чтобы проверить, вставлена ли строка в базу данных или нет.
SELECT * FROM Linuxhint;
Заключение
Защита файлов — первоочередная задача каждого, поскольку они могут содержать некоторые конфиденциальные данные. В основном при взломе специальные символы используются для соединения с базой данных для получения ее данных в неэтичных целях. Чтобы предотвратить это, мы можем провести различные проверки безопасности данных, прежде чем они будут вставлены в базу данных. В этой статье мы обсудили одну из встроенных функций PHP, которая используется для обеспечения безопасности таким образом, чтобы никакие специальные символы не взаимодействовали в базе данных, чтобы нанести ей вред. Вместо этого эта функция считала ее нормальной строкой и вставляла строку в базу данных.