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

Форум PHP

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

 

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

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

тема: Специальные символы.
 
 автор: Евгений Петров   (22.06.2005 в 16:10)   письмо автору
 
 

Я заметил, что у вас на форуме при регистрации (да и не при регистрации) нет ограничений на вводимые символы. Если не секрет как вы это сделали? Точнее как вы это всё в БД заносите чтоб не глючило с той же "магической кавычкой" и т. д. Заранее спасибо!.

   
 
 автор: cheops   (22.06.2005 в 21:05)   письмо автору
 
   для: Евгений Петров   (22.06.2005 в 16:10)
 

Так магические кавычки у нас на хосте включены, поэтому не глючит, а вообще информация пропускается через mysql_escape_string() перед занесением в базу данных и через htmlspecialchars() перед выводом в окно браузера.

   
 
 автор: Евгений Петров   (22.06.2005 в 21:26)   письмо автору
 
   для: cheops   (22.06.2005 в 21:05)
 

А как на счет бесплатных хостингов? У них они как правило включены или нет?

   
 
 автор: cheops   (22.06.2005 в 21:50)   письмо автору
 
   для: Евгений Петров   (22.06.2005 в 21:26)
 

Это зависит от хостинга, но включены ли магические кавычки вы всегда может проверить при помощи функции get_magic_quotes_gpc(), если они не включены, то использовать для экранирования различных спец-символов функцию mysql_escape_string(). Обычно используется следующая конструкция
<?php
  
if (!get_magic_quotes_gpc())
  {
    
$author mysql_escape_string($author);
    
$pswrd mysql_escape_string($pswrd);
    
$url mysql_escape_string($url);
    
$message mysql_escape_string($message);
  }
?>

   
 
 автор: Евгений Петров   (23.06.2005 в 01:20)   письмо автору
 
   для: cheops   (22.06.2005 в 21:50)
 

А вообще в чем суть. Сначала добавить слеши перед символами а при извлечении удалить их?

   
 
 автор: P@Sol   (23.06.2005 в 10:26)   письмо автору
 
   для: Евгений Петров   (23.06.2005 в 01:20)
 

да:)

   
 
 автор: Евгений Петров   (23.06.2005 в 13:59)   письмо автору
 
   для: P@Sol   (23.06.2005 в 10:26)
 

А вот и нифига? Я осилил себя и решил проверить как оно работает, так вот в БД значения заносятся уже без слешей.

   
 
 автор: JC_Piligrim   (23.06.2005 в 14:03)   письмо автору
 
   для: Евгений Петров   (22.06.2005 в 21:26)
 

На [url]holm.ru[/url] magic_quotes_gpc включены. Приходится применять stripcslashes к строкам, пришедшим от пользователя перед сохранением информации, чтобы эти \' превратить в '. (Базу не использую. Вместо нее некое подобие - сериализованные массивы в файлах).

   
 
 автор: Евгений Петров   (23.06.2005 в 14:08)   письмо автору
 
   для: JC_Piligrim   (23.06.2005 в 14:03)
 

А то, что в строке не будет кавычек (точнее они будут предварены "\") гарантирует, то что не получится использовать SQL-инъекцию для взлома или нет?

   
 
 автор: cheops   (23.06.2005 в 19:32)   письмо автору
 
   для: Евгений Петров   (23.06.2005 в 14:08)
 

Это резко снижает вероятность SQL-инъекции практически до 0.

   
 
 автор: Евгений Петров   (23.06.2005 в 21:38)   письмо автору
 
   для: cheops   (23.06.2005 в 19:32)
 

А насколько опасна такая кавычка <'> и вообще какие наиболее опасные символы?

   
 
 автор: cheops   (24.06.2005 в 01:18)   письмо автору
 
   для: Евгений Петров   (23.06.2005 в 21:38)
 

Наиболее опасна одинарная кавычка ', так как позволяет закрыть переменную и присобачить к запросу что-нибудь вроде AND 1=1, что приведёт к ложному срабатыванию, или UNION другой запрос, что позволит отобразить информацию, которую не желательно выводить в окно браузера.

   
 
 автор: Евгений Петров   (24.06.2005 в 01:56)   письмо автору
 
   для: cheops   (24.06.2005 в 01:18)
 

Я у вас где то на форуме вычитал, что функцию HtmlSpecialChars можно как то обойти, не подскажите как?

   
 
 автор: cheops   (24.06.2005 в 02:04)   письмо автору
 
   для: Евгений Петров   (24.06.2005 в 01:56)
 

Если на хосте разрешено выполнение функций system и exec, то HtmlSpecialChars не спасёт от выполнения вставок с использованием этих функций... но такое редко наблюдается.

   
Rambler's Top100
вверх

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