Несколько полезных советов, которые помогут защитить расширение

13/01/2010 Документация Joomla 1.5

Итак для защиты своих расширений от SQL инъекций можно воспользоваться следующими простыми советами. Некоторые люди утверждают, что использование класса JRequest достаточно для этих целей, но по правде это далеко не так. В этой статье по порядку расписываются наиболее встречающиеся моменты.

Eсли используете переменную типа integer (целое или с плавающей точкой), делайте запросы вида:

$sql = 'UPDATE #__mytable SET `id` = ' . (int) $int;

Если нужно вставить дату, используйте

$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 ); 

Если вы используете в запросе LIKE, в котором присутствуют специальные символы % и _, то в методе $db-> getEscaped() есть второй параметр, которые может это контролировать.

$sql = 'UPDATE #__mytable SET .... WHERE `string` LIKE '. 
$db->quote( $db->getEscaped( $string, true ), false );

Некоторые используют длы работы с переменными только один метод JRequest::getVar(), но существует множество других методов, которые гораздо лучше и помогут защитить расширение от XSS атак. Вот некоторые из них:

Для целых

$int = JRequest::getInt( $name, $default ); 

Для дробей

$float = JRequest::getFloat( $name, $default );

Для boolean

$bool = JRequest::getBool( $name, $default ); 

Для переменной типа "words" (альфа сиволы с использование символа _ )

$word = JRequest::getWord( $name, $default );

Для переменной типа "commands" (альфа символы с использованием номеров, . , - и _ )

$cmd = JRequest::getCMD( $name, $default );

Для не HTML текста (Все тэги HTML будут вырезаны)

$string = JRequest::getString( $name, $default );

 

Источник: Preventing SQL Injections



9 

Комментарии   

 
0 Martin
20.10.2014 23:10
Отличный мануал по методам.
Спасибо.
Хорошие советы для защиты от SQL иньекции
Ответить
 
 
0 Tamika
28.03.2017 08:23
I always spent my half an hour to read this website's posts
all the time along with a mug of coffee.

Look into my web site :: https://www.viagrasansordonnancefr.com/acheter-viagra-sans-ordonnance-rapide/: https://www.viagrasansordonnancefr.com/acheter-viagra-sans-ordonnance-rapide/
Ответить
 
 
0 Jillian
08.06.2017 02:05
ӏf some οne desireѕ to be uрdated with newest technologіes afterward
he must be visit this site and be up to ⅾate daily.


Also visit my bⅼog post; bᥙy
runescape money without paypal: http://Fitnessnl.com/ads/httpswww-virsale-comnewsrunescaperunescape-game-guide-combat/
Ответить
 

Добавить комментарий


Защитный код
Обновить