В дополнение к прошлому посту, и как подметил автор 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
Скоро выложу свою функцию, общие принципы реализации которой я описывал в прошлом посте.
Leave a Reply