Input validation with filter functions

Introduction
Although PHP has a lot of filter functions available, I found that still to many people are using (often incorrect) regular expressions to validate user input. The filter extension is simple, standard available and will fulfill the common validations. Below some pratical examples and things to consider when working with PHP filter functions.

Which are available?
Below a shameless copy paste of the PHP documentation.

  • filter_has_var — Checks if variable of specified type exists
  • filter_id — Returns the filter ID belonging to a named filter
  • filter_input_array — Gets external variables and optionally filters them
  • filter_input — Gets a specific external variable by name and optionally filters it
  • filter_list — Returns a list of all supported filters
  • filter_var_array — Gets multiple variables and optionally filters them
  • filter_var — Filters a variable with a specified filter

Pratical use

Sanitizing
“Filter input escape output” every developer knows this but it is a repetitive job but with the filter extension filterering input became a lot easier. When you correctly filter input you drastically lower the change of application vulnerabilities.

Sanitizing a single variable

$sText = ' ';
$sText = filter_var($sText, FILTER_SANITIZE_STRING);
echo $sText; // This is a comment from a alert("scriptkiddie");

Sanitizing multiple variables, same principle as above but with an array, the filter will sanitize all values inside the array

filter_var_array($_POST, FILTER_SANITIZE_STRING);

Validating an email address

if(filter_var($sEmail, FILTER_VALIDATE_EMAIL) === false) {
     $this->addError('Invalid email address', $sEmail);
}

Validation a complete array
Validating all your data at once with a single filter will make your code clear, all in one place and is more easy to maintain an example below.

$aData = array(
	'student'	=> 'Sjoerd Maessen',
	'class'		=> '21',
	'grades' => array(
			'math' => 9,
			'geography' => 66,
			'gymnastics' => 7.5
	)
);

$aValidation = array(
	'student'	=> FILTER_SANITIZE_STRING,
	'class'		=> FILTER_VALIDATE_INT,
	'grades'	=> array(
				'filter' => FILTER_VALIDATE_INT,
				'flags'	 => FILTER_FORCE_ARRAY,
				'options'=> array('min_range'=>0, 'max_range'=>10))
);

echo '
';
var_dump(filter_var_array($aData, $aValidation));

/*array(3) {
  ["student"]=>
  string(14) "Sjoerd Maessen"
  ["class"]=>
  int(21) // Thats strange, my string is converted
  ["grades"]=>
  array(3) {
    ["math"]=>
    int(9)
    ["geography"]=>
    bool(false) // 66 is > 10
    ["gymnastics"]=>
    bool(false) // 7.5 is not an int
  }
}*/

Note: okay I did not expect that the string '21' would validate true against FILTER_VALIDATE_INT, after some more testing I also noticed that min_range and max_range only work with FILTER_VALIDATE_INT, when using floats or scalars the options are just ignored, so be aware!

The sanitizing examples above can be made easily more restrictive by adding flags like FILTER_FLAG_STRIP_LOW to the sanitize filter, FILTER_FLAG_STRIP_LOW will for example strip all characters that have a numerical value below 32.

Things to consider
Although the filter functions are some time available some of them aren't flawless, at some points the documentation is missing or very unclear. Another example is the filter_var validation for IPv6 addresses. (see bug report #50117). So it is always a good thing to check if the filter is really doing what you expect it does. Write testcases before using. If you use it correctly you can write your validations in the blink of an eye, and this extension will be your new best friend.

Links
Filter functions
Filter flags

Comments

1,868 responses to “Input validation with filter functions”

  1. StevenGroxy Avatar

    краби ко ланта как добраться ко ланта пляжи — Ко Ланта славится пляжами с белым песком и кристально чистой водой, где каждый найдёт свой уголок для отдыха и активностей. Long Beach (Pra Ae Beach) простирается вдоль длинной линии песка и вдоль него тянутся кафе, шатры и уютные трассы для прогулок. Klong Dao — спокойный участок пляжа, который подходит для семей и тех, кто любит плавать в спокойной воде и вечерние прогулки под пальмами. Ba Kantiang Bay — более уединённый безмятежный уголок с кручеными скалами и отличной морской атмосферой; здесь часто можно увидеть красивые закаты. Relax Bay и другие небольшие бухты на юге острова дарят спокойствие и хорошую воду для плавания и снорклинга. Вариативность пляжей позволяет выбрать место под босоногий отдых, виллу с видом на море или простые гестхаусы у воды.

  2. SteveMar Avatar
    SteveMar

    canadian discount drugs https://corpharmacy.com/# CorPharmacy

  3. JamesHow Avatar

    Viagra Newark: Viagra Newark – Viagra Newark

  4. StevenGroxy Avatar

    остров ко ланта в тайланде ко ланта на карте — На карте Ko Lanta видно вытянутый вдоль побережья остров с двумя основными частями: Ko Lanta Yai (главный остров) и Ko Lanta Noi (меньший соседний участок). Северная часть близко к материковой части Крэйби и к центру туризма Saladan, южная — более дикая и природная, с национальным парком Mu Ko Lanta. Западное побережье славится длинными пляжами и бухтами, восток — Старый город и менее освоенные зоны. Для навигации чаще всего используют локальные карты и Google Maps; оффлайн-карты или оффлайн-навигация удобны в удалённых бухтах, чтобы не теряться в маршрутах к паромам и тропам.

  5. StevenGroxy Avatar

    паром ко ланта Закаты на Ко Ланте — это особенная песня неба. Особенно красивые мгновения происходят на открытой части побережья, где солнце исчезает за горизонтом и небо окрашивается в оттенки апельсинового, розового и фиолетового. Лучше всего наблюдать за закатом с края пляжа, сидя на песке с напитком в руках и видимом на бескрайнюю гладь моря. Тишина, лёгкий бриз и блеск воды создают ощущение полного спокойствия и завершенности дня. Для романтиков и тех, кто ищет фотогеничные сюжеты, закаты Ко Ланты становятся незабываемыми воспоминаниями

  6. DanielLox Avatar

    Cor Pharmacy: CorPharmacy – Cor Pharmacy

  7. StevenGroxy Avatar

    ко ланта аэропорт как добраться до ко ланты — оптимальные маршруты зависят от вашего исходного пункта. Из Крби или Trang обычно берут паром до Saladan на Ko Lanta Yai; путь занимает 2–3 часа. Из Бангкока чаще летают в Krabi International или Trang Airport, затем переход на паром; в высокий сезон можно встретить прямые скоростные маршруты, но чаще требуется пересадка на материк. Добираясь по суше или воздуху,? сначала добираетесь до пирсов и портов, а затем пересаживаетесь на паром. Для маршрутов через Phuket можно выбрать сочетание полёта/автобуса до Krabi и далее паром; прямого рейса Phuket > Ko Lanta практически нет, чаще это через Krabi или Trang.

  8. SteveMar Avatar
    SteveMar

    online pharmacies canadian https://corpharmacy.com/# canadian pharmacy price checker

  9. Williamopete Avatar
    Williamopete

    ViagraNewark ViagraNewark ViagraNewark

  10. StevenGroxy Avatar

    краби ко ланта как добраться пхукет ко ланта как добраться — Из Пхукета до Ko Lanta можно добраться через автобусы и мини-васы с пересадкой на паром: сначала добираетесь до пирса на материке, затем переправляете машину и пассажиров на Ko Lanta через Ban Saladan. Расписание может зависеть от сезона, поэтому лучше выбрать комбинированный тур или заказать трансфер заранее. Прямых скоростных паромов из Пхукета до Ko Lanta немного, чаще встречаются маршруты через материк и Ao Nang или Krabi Town. Время в пути обычно занимает 4–6 часов, учитывая ожидания на переправе, и это позволяет увидеть побережье Андаман с нового ракурса.

  11. JamesHow Avatar

    Cor Pharmacy: online pet pharmacy – CorPharmacy

  12. StevenGroxy Avatar

    погода ко ланта ко ланта на карте — На карте Ko Lanta выглядит как вытянутый остров с двумя основными участками: Ko Lanta Yai (главный остров) и Ko Lanta Noi (малый соседний участок). Северная часть близко к материковой части Крабі и к центру туризма в Saladan, южная — более тихая и дикая, с национальным парком Mu Ko Lanta. Визуально остров хорошо помнят по длинному побережью на западной стороне: Long Beach и окружающие бухты, а на востоке — старый город и природные зоны. Для ориентации чаще всего пользуются локальными картами с отметками пляжей, площадок для парковок и точек доступа к пирсам.

  13. DanielLox Avatar

    ViagraNewark: Viagra Newark – buy viagra here

  14. StevenGroxy Avatar

    ко ланта отели Ко Ланте отели — дополнительная рекомендация по размещению: север острова и Ban Saladan — удобная база для частых выездов на паром и осмотра местного рынка; Старый город и восточное побережье — погружение в аутентичную атмосферу с местной кухней и небольшими семейными гестхаусами; юг — более уединённые виллы и спокойные бухты. В зависимости от сезона выбирайте варианты с хорошим доступом к пляжу и инфраструктуре: зимой пляжный отдых, летом — зелёные пейзажи и садовые уголки. Обязательно читайте отзывы, сравнивайте условия отмены и уточняйте наличие дополнительных услуг (аренда байка, туры).

  15. Williamopete Avatar
    Williamopete

    cheap viagra Viagra Newark Viagra Newark

  16. StevenGroxy Avatar

    где ко ланта Еда на Ко Ланте — отдельная история. Вечером вокруг пирсов кипит жизнь: морепродукты на гриле, жареный рис с морепродуктами и карри, лёгкие закуски и напитки. Привлекают лавки, где повар выбирает рыбу на месте и обжаривает её прямо перед вами, подавая с луком, чили и лимонным соком. Вкус простоты и свежести проявляется в каждом блюде: ингредиенты часто скромны по набору, но ярко подчёркнуты свежестью моря. Рынки открыты до позднего вечера, и можно найти вкусные морепродукты по разумной цене, что делает трапезу на Ко Ланте особенно приятной

  17. SteveMar Avatar
    SteveMar

    cheap drug prices https://edpillsafib.xyz/# EdPillsAfib

  18. JamesHow Avatar

    Viagra Newark: Viagra Newark – Viagra Newark

  19. StevenGroxy Avatar

    ко ланта пляжи краби ко ланта как добраться — Из Krabi Town или Ao Nang можно добраться до Ban Saladan на Ko Lanta Yai на пароме или скоростном катере. Время в пути обычно 2–3 часа на обычном пароме, в зависимости от очереди и погодных условий — это самый обычный маршрут для гостей Кроти и туристов в Ao Nang. Быстрые варианты на катере могут занять около часа, но требуют хорошей погоды и дороже. В любом случае планируйте путь заранее, учитывая расписания паромов, погодные условия и сезонность, а также рассматривайте альтернативы через Phuket или Trang, если нужно сэкономить или выбрать более гибкое расписание.

  20. StevenGroxy Avatar

    ко ланта отзывы как добраться до ко ланты — Самый распространённый путь начинается с прибытия в аэропорт Краби или Пхукета, затем поездка на автобусе или такси до пирса и паром до Ko Lanta. Из Krabi Town или Ao Nang курсируют паромы и переправы на Ko Lanta Yai; дорога с пирса занимает примерно 2–3 часа с учётом паромной переправы. Из Пхукета можно выбрать прямой маршрут «автобус/микроавтобус + паром» через материк, обычно продолжительность составляет 4–6 часов. В некоторых турах предлагают «частный трансфер + паром» для более комфортного и быстрого маршрута. Рекомендовано заранее планировать маршрут, особенно в высокий сезон, и учитывать часы работы паромов и погодные условия.

  21. DanielLox Avatar

    is canadian pharmacy legit: Cor Pharmacy – Cor Pharmacy

  22. SteveMar Avatar
    SteveMar

    canadian pharmacy price checker https://edpillsafib.xyz/# EdPillsAfib

  23. Williamopete Avatar
    Williamopete

    us pharmacy online pharmacy non prescription drugs pharmacy coupons

  24. StevenGroxy Avatar

    остров ко ланта в тайланде погода ко ланта — климат регулируется муссонной системой Индии. Сухой сезон — с ноября по апрель — самое благоприятное время для купания и прогулок: море обычно спокойное, дни ясные, температура комфортная. Влажный сезон — с мая по октябрь — приносит частые ливни и порывистые ветра, но вода остаётся тёплой; дни часто жаркие и влажные. Температуры 24–32°C круглый год, но бывают периоды, когда влажность поднимается выше; вода может быть слегка мутной после дождей. Лучшее время для сноркелинга — сухой сезон, когда море чистое и прозрачное. Всегда полезно проверить прогноза ветра и приливов перед планированием активностей.

  25. StevenGroxy Avatar

    ко ланта что посмотреть Передвигаться по острову удобнее всего на арендованном скутере: дороги узкие, местами грунтовые, но движение спокойное. Скорость небольшая, поэтому пейзажи и достопримечательности можно рассмотреть вдоль пути. Не забудьте надеть шлем и взять с собой документы. Маршрут вдоль побережья предлагает потрясающие виды на заливы и скалы, а небольшие остановки в банкетах и лавках с тайскими угощениями добавляют аутентичности поездке. Вариантов транспорта на Ко Ланте много: от арендованных велосипедов до такси и локальных автобусов, поэтому можно подобрать удобный формат под свой стиль отдыха

  26. JamesHow Avatar

    canadian pharmacy 24 com: CorPharmacy – Cor Pharmacy

  27. StevenGroxy Avatar

    пхукет ко ланта как добраться Ко Ланта пляжи — главный акцент для отдыхающих: здесь встречаются просторные длинные песчаные линии и укромные бухточки с прозрачной водой. Long Beach (Pra Ae) тянется вдоль длинной береговой линии и идеально подходит для прогулок и ужинов у моря, Klong Dao Beach радует спокойной лагуной и пологим входом, что нравится семьям с малышами, а Kantiang Bay окружён зеленью и скалами, создавая романтичную обстановку для вечеров. В окрестностях встречаются quieter участки, например Ba Kantiang Beach и пляжи у маяка, где можно насладиться моментами тишины и дайвинга в небольших точках. Важно помнить: часть пляжей лучше рано утром или за полдень — тогда вода наиболее чистая и безмятежная, а к вечеру уровень волн может возрастать, превращая побережье в красочное полотно закатов.

  28. StevenGroxy Avatar

    ко ланта отзывы паром ко ланта — основное средство перемещения для тех, кто прибывает с материка. Регулярные переправы идут из Крби, Trang и иногда из Ao Nang в Saladan на Ko Lanta Yai; время пути обычно 2–3 часа в зависимости от маршрута и погоды. В высокий сезон паромы чаще ходят по расписанию, но стоит внимательно проверять расписание и погодные условия перед поездкой. По прибытии удобнее всего арендовать скутер или взять такси до вашего пляжа или гостевого дома; на Ко Ланте удобно перемещаться по мосту между Ko Lanta Yai и Ko Lanta Noi. Для тех, кто любит скорость, доступны скоростные лодки и частные трансферы, но они дороже и зависят от погоды.

  29. DanielLox Avatar

    order ed meds online: erectile dysfunction medication online – Ed Pills Afib

  30. MatthewHes Avatar

    Бесплатный промокод при регистрации мелбет ищет каждый потенциальный клиент компании. Почему? Мало кто откажется от щедрой приветственной награды, позволяющей увеличить сумму первого депозита, заработав до ?9100 бонуса (с 24 апреля бонус увеличился до 50 000). Промокоды – это маркетинговый инструмент, с помощью которого рекламные партнеры букмекера привлекают новых бетторов. Поэтому в современной практике сам букмекер редко распространяет коды, за исключением флагманских акций или раздачи купонов в рамках специальных ивентов. Не все бонусы предполагают наличие рекламного кода. Для активации большинства из них достаточно просто пополнить счет или делать ставки на спорт, получая за это баллы активности. В последующем есть возможность в рамках программы лояльности БК «Мелбет» обменивать баллы на коды для бесплатных ставок (фрибеты) или на реальные денежные средства. Раздобыть промокод Melbet Вы всегда сможете на нашем сайте. При этом Вы можете быть уверенными в том, что это именно актуальное предложение. Также рекомендуем подписаться на информационную рассылку БК, где компания при помощи SMS и почтовых уведомлений держит в курсе событий любителей ставок.

  31. Williamopete Avatar
    Williamopete

    canadian pharmacy generic viagra pharmacy websites CorPharmacy

  32. StevenGroxy Avatar

    краби ко ланта как добраться как добраться до ко ланты — Самый распространённый путь начинается с прибытия в аэропорт Краби или Пхукета, затем поездка на автобусе или такси до пирса и паром до Ko Lanta. Из Krabi Town или Ao Nang курсируют паромы и переправы на Ko Lanta Yai; дорога с пирса занимает примерно 2–3 часа с учётом паромной переправы. Из Пхукета можно выбрать прямой маршрут «автобус/микроавтобус + паром» через материк, обычно продолжительность составляет 4–6 часов. В некоторых турах предлагают «частный трансфер + паром» для более комфортного и быстрого маршрута. Рекомендовано заранее планировать маршрут, особенно в высокий сезон, и учитывать часы работы паромов и погодные условия.

  33. SteveMar Avatar
    SteveMar

    canadian pharmacies that ship to usa http://corpharmacy.com/# Cor Pharmacy

  34. StevenGroxy Avatar

    ко ланта отзывы ко ланта отзывы — Туристы часто отмечают на Ko Lanta очень расслабленную атмосферу, доброжелательных местных жителей и хорошее соотношение цены и качества. Пляжи красивы и подходят для семейного отдыха, снорклинг и лодочные туры получают положительные отзывы. Приятным большинству кажется спокойный ритм жизни острова, но некоторые жалуются на ограниченные вечерние развлечения и более медленный сервис в обычных гестхаусах по сравнению с другими курортами. В целом отзывы чаще положительные: чистая вода, чистые пляжи, красочные закаты и ощущение «другой Таиланд» вдали от массы туристов.

  35. JamesHow Avatar

    EdPillsAfib: Ed Pills Afib – Ed Pills Afib

Leave a Reply

Your email address will not be published. Required fields are marked *