Яка різниця між Htmlentities і Mysqli_real_escape_string?

Вони використовуються для абсолютно різних речей. htmlspecialchars() перетворює спеціальні символи HTML на сутності, щоб їх можна було виводити без проблем (або ризику XSS), тоді як mysql_real_escape_string() екранує конфіденційні символи SQL, тому інтерпольовані запити можна виконувати без ризику впровадження SQL.22 лютого 2010 р.

Ця функція ідентична функції mysql_real_escape_string(), за винятком того, що mysql_real_escape_string() приймає обробник з’єднання та екранує рядок відповідно до поточного набору символів. mysql_escape_string() не приймає аргумент підключення та не враховує поточне налаштування кодування.

addslashes() і mysql_real_escape_string() однаково ефективні для запобігання більшості ін’єкцій SQL – хоча це не зовсім ефективно, оскільки потрібно було б вважати % і _ в реченнях LIKE ін’єкціями, від яких жодна функція не захищає. Обидва вони однаково захищають.

Функція "mysqli_real_escape_string". надає механізм захисту від атак SQL-ін’єкцій шляхом екранування спеціальних символів у вхідних даних. Він приймає рядок як вхідні дані та повертає новий рядок із належним екрануванням усіх необхідних символів.

Підводячи підсумок, filter_var() стосується фільтрації та перевірки вхідних даних. mysqli_real_escape_string() — це екранування даних перед використанням у рядку MySQL.

Перед використанням mysql_real_escape_string() потрібне підключення до MySQL інакше генерується помилка рівня E_WARNING і повертається false. Якщо link_identifier не визначено, використовується останнє підключення MySQL. Примітка. Якщо ця функція не використовується для екранування даних, запит вразливий до атак SQL-ін’єкцій.

Чи існує еквівалент mysql_real_escape_string PHP у Python? Так, це escape_string в об’єкті підключення до бази даних. Не escape_string у модулі MySQLdb, який еквівалентний mysql_escape_string у PHP і має таку саму потенційну вразливість із багатобайтовими наборами символів. Ви не повинні використовувати MySQLdb.