Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка данных перед помещением их в базу данных
 
 автор: mindless   (19.12.2006 в 20:56)   письмо автору
 
 

привет!

узнал что якобы если БД в юникоиде то легко можно ввести код символа например код кавычек %65 или что то типа .. и они легко запишутся в БД...

и во избежании этого всего нужно использовать mysql_real_escape_string (mysql_SUPER_REAL_escape_string) или DBI - что такое это?

хотелось бы услышать ваши комментари

   
 
 автор: cheops   (19.12.2006 в 22:45)   письмо автору
 
   для: mindless   (19.12.2006 в 20:56)
 

Не понятен вопрос, что хотите узнать? Обстоятельство использования функций mysql_escape_string(), htmlspecialchars() или UTF-8?

   
 
 автор: mindless   (20.12.2006 в 01:19)   письмо автору
 
   для: cheops   (19.12.2006 в 22:45)
 

про то насколько это реально занести кавычки через код символа для юникоид базы обойдя htmlspecialchars

   
 
 автор: cheops   (20.12.2006 в 02:17)   письмо автору
 
   для: mindless   (20.12.2006 в 01:19)
 

Функция htmlspecialchars() имеет второй не обязательный параметр, через который можно управлять преобразованием кавычек:
ENT_NOQUOTES - двойные и одинарные кавычки остаются без изменений;
ENT_COMPAT - двойные кавычки заменяются на символ "
ENT_QUOTES - двойные кавычки заменяются на символ ", а одиночные на символ '
Т.е. используя последний режим вы можете преобразовать все кавычки в безопасную форму
<?php
  $text 
htmlspecialchars($textENT_QUOTES);
?>

   
 
 автор: mindless   (20.12.2006 в 11:19)   письмо автору
 
   для: cheops   (20.12.2006 в 02:17)
 

не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT или REVOKE.

так типаа через % код символа можно внести кавычки

   
 
 автор: XPraptor   (20.12.2006 в 11:27)   письмо автору
 
   для: mindless   (20.12.2006 в 11:19)
 

Двойную кавычку можно %22 одиночная не имеет конвертации через %.

   
 
 автор: cheops   (20.12.2006 в 12:44)   письмо автору
 
   для: mindless   (20.12.2006 в 11:19)
 

>так типаа через % код символа можно внести кавычки
Все символы, которые в URL начинаются с %, декодируются автоматически и превращаются в пробелы и кавычки - если вы обрабатываете такой код при помощи htmlspecialchars() в приведённом выше варианте - опасности нет.

>не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL
>LIKE, GRANT или REVOKE.
Вам зачем их экранировать? С их попомощью всё равно ничего нельзя сделать, только если вы не используете LIKE там, где разумнее использовать =. В любом случае если ожидаете единственный результат, то добавляйте конструкцию LIMIT 1 (это признак хорошего тона).

Если не хотите использовать htmlspecialchars() перед заненесением информации в базу данных (а это разумно, так как её неудобно будет редактировать), используйте конструкцию
<?php
  
if (!get_magic_quotes_gpc())
  {
    
$name mysql_escape_string($name);
  }
?>

   
 
 автор: mindless   (20.12.2006 в 18:47)   письмо автору
 
   для: cheops   (20.12.2006 в 12:44)
 

спасибо!

скажите а что такое DBI?

   
 
 автор: cheops   (20.12.2006 в 20:50)   письмо автору
 
   для: mindless   (20.12.2006 в 18:47)
 

DBI - это унифицированный программный интерфейс, который позволяет обращаться к разным базам данных, используя одни и те же функции, а зачастую и один и тот же код. Наиболее близким аналогом для него является ODBC, который продвигает Microsoft. DBI наиболее распространён в Perl, где является практически стандартом.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования