#6.11 php web приложения Удаление тегов HTML
Primary tabs
При обработке введенного текста необходимо обратить внимание на следующую деталь, в особенности, если строку потом планируется отображать. Пользователь может использовать при наборе текста теги HTML (в том числе и выражения на JavaScript), что может повлиять на корректность работы приложения при использовании этого текста для формирования страницы. Для предотвращения этой ситуации можно использовать функцию strip_tags, которая удаляет из заданной строки все теги, что и продемонстрировано в примере 1.
Пример 1. Удаление тегов из введенного текста
<HTML> <HEAD> <TITLE> Удаление тегов </TITLE> </HEAD> <BODY> <CENTER> <H1>Удаление тегов</H1> <?php $errors = array(); if (isset($_REQUEST["seen_already"])) { validate_data(); if (count($errors) > 0) { display_errors(); display_form(); } else { process_data(); } } else { display_form(); } function validate_data() { global $errors; if($_REQUEST["Name"] == "") { $errors[] = "<FONT COLOR='RED'>Имя обязательно для ввода</FONT>"; } } function display_errors() { global $errors; foreach ($errors as $err) { echo $err, "<BR>"; } } function process_data() { echo "Ваше имя: "; $ok_text = strip_tags($_REQUEST["Name"]); echo $ok_text; } function display_form() { echo "<FORM METHOD='POST' ACTION='phpstrip.php'>"; echo "Введите ваше имя:"; echo "<BR>"; echo "<INPUT NAME='Name' TYPE='TEXT'>"; echo "<BRxBR>"; echo "<INPUT TYPE=SUBMIT VALUE='OK'>"; echo "<INPUT TYPE=HIDDEN NAME='seen_already' VALUE= 'data'>"; echo "</FORM>"; } ?> </CENTER> </BODY> </HTML>
Теперь, если пользователь введет текст, содержащий HTML-теги (как на рис. 1), то при формировании страницы теги будут удалены, и потенциальная угроза безопасности приложения будет устранена (см. рис. 2).
- Log in to post comments
- 278 reads