johngaltisdead Ответов: 1

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданная '<


I've looked through around 10 similar questions, but there are more sophisticated cases with if-statements, functions, etc.
I have a problem with just one line of code.

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
</form>


Что я уже пробовал:

Вшита
$_SERVER['PHP_SELF']
в паретизах, заменяя двойные кавычки одинарными, удаляя конечный php-тег
?>
.

1 Ответов

Рейтинг:
10

MadMyche

Код, который у вас есть, должен работать; он в основном такой же, как простой пример кода, найденный на нескольких сайтах, однако он подвержен вмешательству XSS.

Обходной путь для этой уязвимости заключается в том, чтобы html-кодировать сущности внутри URL-адреса:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

Рекомендации:
1. Использование PHP_SELF в поле действия формы[^]
2. Проверка формы PHP 5[^]


johngaltisdead

@MadMyche, спасибо.
Я также хотел бы спросить, является ли htmlspecialchars тем же самым, что и htmlentities?

MadMyche

Нет. Функции htmlspecialchars является подмножеством функция htmlentities и общества на наиболее проблемные символы

Reerence: https://johnmorrisonline.com/prevent-xss-attacks-escape-strings-in-php/