Нет, это зависит от того, что делает ваша функция escape_string ().
Более того, директива magic_quotes_gpc включена или выключена (по умолчанию она должна быть отключена).
Чтобы безопасно вставить в базу данных, вам нужно использовать mysql_real_escape_string ()
, НЕТ addlashes () , НЕТ самодельных функций , но эта. Или, что еще лучше, используйте параметризованные запросы, которые освобождают вас от экранирования кавычек. Попробуйте с PDO
РЕДАКТИРОВАТЬ:
увидел теперь тег mysqli, поэтому mysql_real_escape_string () не является опцией, но директива magic_quotes все еще может быть виновником этого.
Если у вас есть magic_quotes, вы можете либо отключить их в своем PHP ini, через ini_set('magic_quotes_gpc',0);
, .htacces php_flag magic_quotes_gpc Off
, либо выполнить простую функцию, подобную этой:
function escape($value)
{
if(get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
//return mysql_real_escape_string($value); changed after update
return $value;
}
Убедитесь, что у вас есть открытое соединение перед использованием mysql_real_escape_string (), иначе будет возвращено FALSE.
Кроме того, html НЕ ДОЛЖЕН БЫТЬ ЗАБРОШЕН перед входом в базу данных. Я имею в виду, вам нужно уйти от ВАШИХ ЗАПРОСОВ, и вы достигнете этого с помощью методов, которые я упомянул. HTML и его вредоносность ничего не делает для базы данных.
Html должен быть экранирован при выходе, и только тогда, и вы используете htmlentities () как минимум, но для того, чтобы избежать любых возможных уязвимостей, связанных с инъекцией XSS, необходимы дальнейшие действия , Это сложная тема, требующая большой работы, чтобы избежать невидимых управляющих символов, вредоносных тегов и так далее. Вам нужно еще раз исследовать это и начать читать об угрозах XSS Injection.
В любом случае, запрет на выполнение кода в браузере - это только начало. Не разрешать пользователям писать html прямо на вашей странице (тот же совет применим не только к отправленным пользователем данным, но и ко всему, что поступает извне, например, к параметру $ _GET, к cookie или даже скрытые значения форм), или вы легко столкнетесь с опасной проблемой <script></script>
, которая может привести к краже файлов cookie, неправильному перенаправлению, перехвату трафика и многим другим, которые я не могу перечислить здесь. UST htmlentities () обеспечивает хороший уровень защиты от этого, даже несмотря на то, что его вывод не очень хорош.