Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2010, 22:08   #1
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию Аналог mysql_real_escape_string()

Столкнулся с проблемой - надо использовать mysql_real_escape_string() до подключения к БД. Соответственно, как вытекающее, нельзя использовать mysql_real_escape_string().
В интернете нашел следующий аналог:
PHP код:
 function sql_valid($data) {
  
$data str_replace("\\""\\\\"$data);
  
$data str_replace("'""\'"$data);
  
$data str_replace('"''\"'$data);
  
$data str_replace("\x00""\\x00"$data);
  
$data str_replace("\x1a""\\x1a"$data);
  
$data str_replace("\r""\\r"$data);
  
$data str_replace("\n""\\n"$data);
  return(
$data); 
 } 
Насколько этот аналог безопасен?
Возможно ли провести sql-инъекцию, используя различные кодировки?
Виталий Желтяков вне форума Ответить с цитированием
Старый 10.12.2010, 08:46   #2
Che Guevara
Пользователь
 
Аватар для Che Guevara
 
Регистрация: 27.07.2010
Сообщений: 91
По умолчанию

Интересная замена функции mysql_real_escape_string(). Может поможет это...
Che Guevara вне форума Ответить с цитированием
Старый 10.12.2010, 08:56   #3
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Насколько этот аналог безопасен?
Возможно ли провести sql-инъекцию, используя различные кодировки?
А просто http://ru.php.net/manual/en/function.addslashes.php не хватит?
Входные параметры перекодируем в используемую кодировку или проверяем кодировку перед использованием.
Вообще всё зависит от степени паранои, даже при использовании только addslashes сделать иньекцию практически нереально.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 10.12.2010, 09:29   #4
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Понятно дело, что addslashes может использовать вместо mysql_real_escape_string.
Но ...
Цитата:
Входные параметры перекодируем в используемую кодировку или проверяем кодировку перед использованием.
хотелось бы без перекодирования, т.к. у меня нагруженная система с большими потоками данных.
Виталий Желтяков вне форума Ответить с цитированием
Старый 10.12.2010, 09:53   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Перекодировать и не надо проверять просто, если не исходная кодировка то error.
http://ru.php.net/manual/en/function...k-encoding.php
Потестить на нагрузку, если не многокушает то вариант.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог GetServByPort в C#. Dasharnb777 C# (си шарп) 0 05.12.2010 15:16
Аналог try. beemoto Общие вопросы Delphi 16 16.12.2009 18:33
аналог stringgrid unit-85 Компоненты Delphi 4 05.03.2009 14:00
Аналог Sleep() Ants Общие вопросы Delphi 2 18.11.2008 13:11
Аналог with на С++. Иллидан Общие вопросы C/C++ 1 16.05.2008 21:41