Intereting Posts
Возврат 2 значений из функции Задайте свойство limit / maxRecords для индексации Windows Search через PHP COM Настройка php-функции так, чтобы она отображала ссылку в виде: – '/ widgets? Pg = 2' вместо 'products.php? Cat = 20 & pg = 2' Удаление строки таблицы mySQL с помощью jQuery Ajax Удалить из 's конец строки Миграция Laravel показывает пустую страницу, нет экрана отладки PDO: fetchAll () с двойным именем столбца в JOIN Как вы можете проверить, находитесь ли вы на главной странице в Joomla? Передача переменной JQuery в php в модальном Я мог бы использовать некоторую помощь с моей командой SQL Таблица JQuery AddRow Плагин добавляет идентификационные номера в добавленные строки Mysql Никакое соединение не может быть сделано, потому что целевая машина активно отказалась от него Уведомление о добавлении новой записи в базу данных php-jquery Создание новой таблицы в Laravel на основе ввода пользователем? Вход пользователя Magento программно

Лучшая практика для вывода PHP

Мне было интересно, какова лучшая практика на примере ниже.

<?php if(isset($_POST['query'])){ $out = $_POST['query']; } ?> <div><?php echo $out; ?></div> <input type="text" value="<?php echo $out; ?>" /> 

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

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

Да, поскольку вы размещаете его в HTML, вы должны соответствующим образом кодировать специальные символы HTML с помощью htmlspecialchars :

 if (isset($_POST['query'])) { $out = htmlspecialchars($_POST['query']); } 

Кроме того, $out определяется только тогда, когда существует $_POST['query'] ; вы должны думать о наличии значения по умолчанию, если $_POST['query'] не существует. Поскольку в противном случае, когда глобальные регистры включены (это само по себе является плохой идеей), вы можете установить эту переменную через строку запроса URL-адреса с помощью ?out=…

Да, вы должны использовать функцию php htmlspecialchars http://php.net/manual/en/function.htmlspecialchars.php

также, см. это (принятый ответ)

Должны ли htmlspecialchars и mysql_real_escape_string сохранить код PHP безопасным от инъекции?

не знаю о лучшей практике и что зависит от кодера я люблю

 echo (isset($_POST['query']))? htmlspecialchars($_POST['query']):"";