Проверяйте тип данных

В дополнение к прошлому посту, и как подметил автор SecureBlog’а, хотел бы добавить следующее: прежде чем осуществлять обработку данных на их содержимое необходимо проверять их тип. Если этому не уделять внимания, то недостаточная проверка типов данных может привести к раскрытию пути, т.к. функция, которая ожидает получить, например, числовое значение в качестве одного из аргументов, приняв строку или массив, как правило, вызывает ошибку уровня E_WARNING:

Warning: urlencode() expects parameter 1 to be string, array given in C:\Webservers\localhost\www\index.php on line 3

Передать массив вместо строки или числа очень просто:
GET-запрос:

GET /index.php?mode[]=main HTTP/1.1
Host: somehost.com
Connection: close

POST-запрос:

POST /index.php HTTP/1.1
Host: somehost.com
Content-Type: application/x-www-form-urlencoded
Connection: close

postfield[]=blah

Массив в Cookie:

GET /index.php HTTP/1.1
Host: somehost.com
Cookie: auth[]=8c510f5172628316f5435fc9bc0c4d17
Connection: close

Скоро выложу свою функцию, общие принципы реализации которой я описывал в прошлом посте.


1 comment:

  1.  

    […] уже не раз излагал свои мысли по поводу принципов грамотной фильтрации входящих […]

     

Write a comment: