Проблемы связанные с возможностью передачи escape последовательности "\'" через некорректную компоновку символов в UTF-8 или других многобайтных кодировках, изначально найденные в PostgreSQL, не обошли стороной и MySQL, в связи с чем и были выпущены новые версии 5.0.22 и 4.1.20.
Если по каким-то причинам обновление сервера невозможно, рекомендуется в качестве временной меры использовать:
SET sql_mode='NO_BACKSLASH_ESCAPES';
SET GLOBAL sql_mode='NO_BACKSLASH_ESCAPES';
Функции mysql_real_escape_string() или addslashes() в PHP проблемы не решают.
Как дополнение, можно упомянуть выход статьи "Security and More in MySQL Databases" в которой рассмотрены опции и системные переменные в MySQL, имеющие отношение к безопасности, производительности и анализу текущего состояния.
|