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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: SQL инъекция

Сообщения:  [1-10]   [11-15] 

 
 автор: Unkind   (24.11.2007 в 00:04)   письмо автору
 
   для: Trianon   (24.11.2007 в 00:01)
 

:) А Вы с какого момента поняли, что нужно было сказать UCS-2/UCS-4?

   
 
 автор: Trianon   (24.11.2007 в 00:01)   письмо автору
 
   для: Unkind   (23.11.2007 в 07:53)
 

Ок . Уговорили.
Не в utf-8
В ucs-2

   
 
 автор: Unkind   (23.11.2007 в 07:53)   письмо автору
 
   для: Trianon   (23.11.2007 в 00:57)
 

А может быть другим байтом? Или так: Вы не убеждены, что только 0x5C?

   
 
 автор: Trianon   (23.11.2007 в 00:57)   письмо автору
 
   для: Unkind   (22.11.2007 в 22:45)
 

Если Вы убеждены, что символ экранирования всегда останется байтом 0x5C - можете эту функцию не применять.

   
 
 автор: Unkind   (22.11.2007 в 22:45)   письмо автору
 
   для: Trianon   (22.11.2007 в 19:53)
 

А я не зря это спросил. Вы что-то путаете.

UTF-8 это текст, в котором каждый из символов представлен последовательностью байтов, подходящих под один из шаблонов совокупности:

http://unhost.ru/trash/utf8.txt (прямо в сообщении, к моему большому удивлению, написать не смог)

Так вот байты до 0x7F включительно выражаются одним байтом. А ведь все байты, которые эскейпирует mysql_escape_string() как раз до 0x7F, а именно: 0x00, 0x0A, 0x0D, 0x1A, 0x22, 0x27, 0x5C.

Говорю байты, потому что в данном случае это получается одно и то же.

   
 
 автор: Trianon   (22.11.2007 в 19:53)   письмо автору
 
   для: Unkind   (22.11.2007 в 16:12)
 

Затем, что экранировать в строке запроса следует целые многобайтовые символы, а не отдельные их байты.
И хотя в проекции русского алфавита на карту utf-8 , критичных символов нет, насколько я помню, но писать всё ж следует аккуратно. Код, работающий с utf-8, неявно предполагает от его автора, что он останется работоспособным при переходе на [возможно более] любой язык, а не только тот, на котором шло тестирование.

   
 
 автор: kis-kis   (22.11.2007 в 19:00)   письмо автору
 
   для: cheops   (22.11.2007 в 12:13)
 

А IP-адрес пропускать через какую функцию intval() или mysql_escape_string()?

Спасибо.

   
 
 автор: Unkind   (22.11.2007 в 16:12)   письмо автору
 
   для: Trianon   (22.11.2007 в 08:57)
 

> Если работаете с UTF-8 - следует применять mysql_real_escape_string()
Это зачем?

   
 
 автор: cheops   (22.11.2007 в 12:13)   письмо автору
 
   для: kis-kis   (21.11.2007 в 18:40)
 

Да, для защиты от SQL-инъекции, этого достаточно.

   
 
 автор: kis-kis   (22.11.2007 в 11:16)   письмо автору
 
   для: Thrasher   (22.11.2007 в 09:50)
 

Спасибо.

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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