ФорумФорум  КалендарьКалендарь  ЧаВоЧаВо  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  Вход  
Поиск
 
 

Результаты :
 
Rechercher Расширенный поиск
Последние темы
» Подтверждение о прочтении
автор worker8281 Сб Дек 27, 2014 1:05 pm

» Проблема с сессией
автор Murphy Ср Дек 03, 2014 5:20 pm

» Нужнга настройка SugarCRM
автор iliandr777 Пн Ноя 10, 2014 2:28 pm

» Отображение записей (адресатов) в списках адресатов
автор FatherMother Пн Авг 25, 2014 12:21 pm

» Нужен совет. Модуль с множеством одинаковых субпанелей.
автор Павел Пн Июл 28, 2014 12:55 pm

» Нужна помощь с опенкартом
автор manux86 Вс Фев 02, 2014 10:45 am

» вопрос работы насчет СУГАР на сервере
автор Meiir2 Пт Янв 31, 2014 8:46 am

» Интеграция с Google календарем от компании "Куб Три"
автор Dmitry.bereza Ср Авг 14, 2013 10:29 am

» настройка воронки продаж
автор EkaterinaGolovina Чт Июн 13, 2013 12:14 pm

Ноябрь 2018
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
2627282930  
КалендарьКалендарь
Баннеры
Яндекс цитирования статистика
Поддержка проекта
41001634550309

Поделиться | 
 

 PHP. Фильтрация данных

Перейти вниз 
АвторСообщение
Admin
Admin


Сообщения : 74
Очки : 71
Дата регистрации : 2010-08-23

СообщениеТема: PHP. Фильтрация данных   Пт Сен 10, 2010 3:22 am

Самом важным пунктом безопасности веб-сайта является проверка всех поступающих в запросы к базе данных, поэтому стоит всегда проверять данные, вводимые пользователем в формы поиска, заполнения полей регистрации и так далее на наличие «опасных» данных. Это может быть вредоносный JavaScript код, PHP или PERL команды, а так же что самое опасное – это команды серверу. Говорить о возможностях опытного хакера, которому попалась не проверяемое поле на сайте просто глупо – он сможет всё! Начиная от устанвки редиректа и заканчивая полным гоном или выводом из строя сервета.

Всегда помните, что абсолютно любой пользователь – это опасность для незащищенного сайта, поэтому всегда стоит проверять запросы и переменные от пользователя.

Основные этапы:

1) Анализ переменных, точнее массивов POST и GET;

2) Разделение переменных;

3) Фильтрация строковых переменных


1 этап. Анализ переменных
Проверяйте входящие переменные в самом начале скрипта, не допускайте до работы с функциями и запросами к базе данных ещё не проверенные, потенциально опасные данные от пользователей. Таким образом, все необходимые для защиты функции будуд находиться в одном определённом месте или даже файле.

Пример:
Код:
$a1=@$_GET["nomer"]; Символ @ применяется для «игнорирование» интерпритатором ошибок в случае отсутствия переменной nomer в массиве GET.

2 этап. Разделение переменных
Абсолютно каждая переменная в скрипте должна на стадии проектирования уже иметь свой тип, будь это число или строка. Лучше всего проверять переменные на необходимый ей тип, например:

Тип нашей переменной целое число, тогда для фильтрации данных достачно сделать приведение переменную $a1 к целому типу:
Код:

$a1=@$_GET["nomer"];

 $a1=intval($a1);


Например злоумышленник ввел в строке запроса ?nomer=43X34 в результате обработки переменная $a1 примет значение 43.

Нельзя забывать о диапазонах значений. Для этого следует проверить переменную на диапазон. Пусть $a1 находится в пределе от 1 до 100, тогда проверка будет следующей:
Код:

if (($a1<1)||($a1>100)) $a1=1;


Из примера видно, что происходит принудительная установка переменной $a1 в значение 1 в случае нарушения.

3 этап. Фильтрация строковых переменных
Особо опасны текстовые переменные, например поле для ввода поисковой фразы по сайту. Их просто необходимо проверять на наличие вредоносного кода. Для устранения опасности производится удаление некоторых элементов из текста или замена на другие символы.

Обычно удаляются html теги, php вставки и конструкции для изменения запросов к базе MySQL.
Код:

$a1=htmlspecialchars($a1,ENT_QUOTES,"cp1251");

 $a1=str_replace("update","",$a1);
Вернуться к началу Перейти вниз
Посмотреть профиль http://easy-sugarcrm.forum2x2.ru
 
PHP. Фильтрация данных
Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
 :: PHP - статьи, советы-
Перейти: