Все о Joomla 1.5

...заметки Котофеича

 
  • Increase font size
  • Default font size
  • Decrease font size

Home syber Как защититься от sql-инъекций?
2008.07.18 13:22:56
syber

Довльно актуальная тема. На чем стоиться защита от инъекций в joomla? Как правильней писать sql-запросы?

  sql | инъекция
 

admin
2008.07.18 22:27:05

Самое необходимое при защите это отслеживание типов переменных, которые получаешь в запросе.
Например если ты передал целое число в запрос, то нужно писать так:
$sql = 'UPDATE #__mytable SET `id` = ' . (int) $int;

Если в sql-запрос поступает дата, то обрабатываем так:
$date =& JFactory::getDate($mydate);
$sql = 'UPDATE #__mytable SET `date` = ' . $db->quote( $date->toMySQL(), false);


Если обрабатываешь строку, то:
$sql = 'UPDATE #__mytable SET `string` = ' . $db->quote( $db->getEscaped( $string ), false );

 
 
TriniX
2010.06.09 15:43:11

хорошее решение, только вот проблема такая, я делаю тестирующий компонент и когда обрабатываю вот такую строку "for(i = 0; i <= 2; i++)", после $db->Quote() остается "for(i = 0; i " вырезает пол строки, можете помочь, может есть какие - нибудь функции с не такими жесткими отсечениями

 
 
Комментировать
Логин:

E-mail:

  Введите текст изображенный на картинке: