Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как правильно

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Чтоб комар нос не подточил
LifePlay
Отправлено: 01 Декабря, 2010 - 20:39:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


Помог: 0 раз(а)




Нашёл такой вот пост на каком-то Форуме:

И на закусочку: метод взлома и порчи сайтов, проводимый за счёт отсутствия кавычек в SQL - строках или отсутствия эскейпов называется SQL-инъекцией

Хочу узнать что такое эскейпов?
И справедливо думать что если кавычки есть то и SQL-инъекцией воспользоваться не как?
Вообще как спастись от этого зла?

(Отредактировано автором: 01 Декабря, 2010 - 20:40:38)

 
 Top
ALEN
Отправлено: 01 Декабря, 2010 - 20:46:21
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




проверкой данных
 
 Top
LifePlay
Отправлено: 01 Декабря, 2010 - 21:22:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 135
Дата рег-ции: Авг. 2010  
Откуда: Кобеляки, Украина


Помог: 0 раз(а)




Кавычки не при делах?
 
 Top
ALEN
Отправлено: 01 Декабря, 2010 - 21:55:48
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LifePlay
не при делах, при делах обработка данных когда их вставляете в запрос
 
 Top
Телевизор
Отправлено: 01 Декабря, 2010 - 22:15:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




а если только выборка идет без методов post, то и тогда sql запросы бесполезны ? всмысле взламывать нечего если только выборка страниц?
 
 Top
ALEN
Отправлено: 01 Декабря, 2010 - 22:19:44
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Телевизор
старайся в любый запросах данные форматировать, экранировать избавляться в них от частей который могут изменить запрос к БД
 
 Top
Телевизор
Отправлено: 01 Декабря, 2010 - 22:53:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




ALEN ааааааааааааа.... теперь понятниньки спс

хм.. а как думаешь mysql_escape_string() достаточно для экринирования символов ?
 
 Top
OrmaJever
Отправлено: 01 Декабря, 2010 - 23:41:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Телевизор пишет:
хм.. а как думаешь mysql_escape_string() достаточно для экринирования символов ?

Да. Эту функцию можно применять не ко всем переменым, а только к тем которые может задать пользователь. Тоесть масивы ($_REQUEST, $_POST, $_GET, $_COOKIE) и другие переменые значения которых пользователь может изменить.

mysql_escape_string() - использовать когда заносишь пользовательские даные в бд
и
htmlspecialchars() - когда выводишь даные пользовательские на страницу.
И про sql иньекцию и xss атаки можно забыть.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 02 Декабря, 2010 - 00:23:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




OrmaJever
Ну например getenv('REMOTE_ADDR'); и getenv('HTTP_X_FORWARDED_FOR'); тоже подделать можно... Они часто в счетчиках и "кто оньлань" на БД используются... Так это ж строки...
Хотя именно эти я проверяю регуляркой "#(^[0-9.:]{7,15}$)#" - на всякий случай... Обычная софтина исправно отправит верные заголовки и мы её запишем, а кулхацкеру шиш с маслом...
 
 Top
Телевизор
Отправлено: 02 Декабря, 2010 - 08:26:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




OrmaJever
ессссссссс как раз таки и гет и использую.
DeepVarvar кстати тоже как вариант с регулярными выражениями тоже попробую,
вообще я шизик, 10 раз пытаюсь себя обезопасить даже в простых случаях...

(Отредактировано автором: 02 Декабря, 2010 - 08:38:41)

 
 Top
OrmaJever
Отправлено: 02 Декабря, 2010 - 12:43:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar я же не мог вспомнить все переменые, я написал всё что пользователь может изменить.

Телевизор телевизор безопасность это важно но не нужно даные пропускатьчерез 10 проверок и 5 функций. Достаточноодной грамоточно проверки.
Вот например я делал голосование, и там было 4 варианта ответа которые принимались методом гет и добавлялисьв базу.
Я написал вот так

PHP:
скопировать код в буфер обмена
  1. $arr = array('1', '2', '3', '4');
  2. if(array_search($_GET['x'], $arr) === false)
  3. $x = 1;
  4. else $x = $_GET['x']
  5.  
  6. mysql_query('INSERT INTO table (row1, ...) VALUES ("'.$x.'", ...)')

вот примерно таким способом можно не использовать функцию mysql_escape_string()
Ну то единичные случаи но всётаки можно фильтровать так или регулярными выражениями.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Телевизор
Отправлено: 04 Декабря, 2010 - 02:42:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 369
Дата рег-ции: Март 2010  
Откуда: с яндекса


Помог: 3 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. $arr = array('1', '2', '3', '4');
  2. if(array_search($_GET['x'], $arr) === false)


это конечно оригинальный вариант для безопасности, Улыбка как я понимаю это уже будут стабильные массивы в противном случае false

сенкю...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB