Intereting Posts
как отправить HTTP-запрос методом GET в PHP на другой веб-сайт Веб-приложение должно взаимодействовать с последовательным портом PHP / MySQL: динамический подготовленный оператор с запросом на вставку / обновление Установка таймаута Curl в PHP перенаправить после входа в систему fos user bundle symfony Показывать имя пользователя после входа пользователя в систему Facebook публиковать поток напрямую с помощью PHP Предупреждение: sqlsrv_num_rows () ожидает, что параметр 1 будет ресурсом, boolean Украшение HashMap, добавляющее случайность для предотвращения (D) DoS как я могу сортировать массив по дате в php Получить Nginx для вызова файла PHP для обработки 404 ошибок в php-fpm Как добавить пользовательские поля в регистрационную форму WooCommerce Ограничить страницы от пользователей, не являющихся администраторами (PHP и MySQL) Получить первый символ строки UTF-8 jQuery генерирует уникальные идентификаторы

Выход из цикла foreach и получение результата

Я работаю над небольшим проектом, и я ушел в мозг, поэтому я надеюсь, что кто-то может помочь мне победить мой блок кодировщиков.

Я пытаюсь создать страницу с использованием php, которая меняет отображение содержимого в зависимости от того, какое значение (если есть) передается на страницу (местоположения). Я создал массив safelist, который я сохранил в разных местах. Сначала я проверяю любое значение, переданное против безопасного списка, если его совпадение отображает один набор содержимого.

Если это не соответствует, я запускаю тест сходства, чтобы проверить, может ли это просто опечатка, и все же можно перемещать людей на страницу, я думаю, они хотели, но это то, где я застреваю.

Я надеюсь, что кто-то может напечатать

www.example.co.uk/location.php <—- для загрузки общей страницы местоположения

www.example.co.uk/location.php?loc=Bishops-Stortford <—- для загрузки целевой страницы местоположения

www.example.co.uk/location.php?loc=Bishop-Stortford <—- для загрузки целевой страницы местоположения, несмотря на неправильное обращение, обеспечивающее его 90% или более совпадение

www.example.co.uk/location.php?loc=?php echo «Я взломал ваш сайт»; ?> —- надеюсь, моя система разоружит неприятную инъекцию кода

Я отправлю свой код ниже, чтобы вы могли видеть, что у меня есть.

<?php $loc = ""; $safelist = array("Bishops Stortford", "Braintree", "Chelmsford", "Dunmow", "Harlow", "Hertford", "Saffron Walden", "Sawbridgeworth", "Stansted", "Ware", "Essex", "Hertfordshire"); if(isset($_GET["loc"])) { /* Gets the value of loc if set, replaces hyphens with spaces and capitalises first letters of words converting the rest to lowercase. */ $loc = ucwords(strtolower(str_replace("-", " ", $_GET["loc"]))); } /* Is word in safelist */ if (in_array($loc, $safelist)) { /* Yes */ if (($loc == "Essex") or ($loc == "Hertfordshire")) { $county = True; } else { $county = False; } if ($county == False) { echo "\"" . $loc . "\" is not a county"; }else{ echo "\"" . $loc . "\" is a county"; } } else { /* No, Is string 90% similar to any entry within the safelist? */ foreach ($safelist as $safeword) { similar_text($safeword, $loc, $percent); echo $safeword . " " . $loc . " " . $percent . "<br />"; if ($percent >= 90) { } } ?> 

Я не могу думать, что делать для if ($ percent> = 90). Я знаю, что хочу выйти из цикла и получить результат из первых 90% или более совпадений, которые я нахожу, но я не уверен на 100%, как это сделать.

Также, как наилучший способ справиться с инъекцией кода, например, www.example.co.uk/location.php?loc=?php echo «Я взломал ваш сайт»; ?>