Я не знаком с PHP, и наш продукт написан не на PHP. Мы используем поставщика, который создает для нас документацию с использованием PHP. Недавно мы обнаружили XSX-атаку в PHP-коде. Атака XSS была произведена, когда злоумышленник получил доступ к
vendor.php/%22onmouseover=%22alert%281310%29%22
Обычный доступ похож на
vendor.php?param1=val1¶m2=val2
После исследования кода я нашел проблемную строку:
$SelfURL = $_SERVER['PHP_SELF'];
Я исправил это, используя эту замечательную ссылку PHP_SELF и XSS:
$SelfURL = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, "utf-8");
Мы отправили исправление поставщику и попросили исправить PHP. Ответ меня удивил: поставщик утверждает, что их PHP без проблем и что мы должны включить на нашем сервере Apache правила перезаписи URL, которые не позволят получить доступ к таким страницам, как vendor.php/
.
Я попытался объяснить, что у нас нет правил перезаписи URL, и только доступ к его странице создает атаку (из-за $SelfURL = $_SERVER['PHP_SELF']
). Поскольку я не знаком с PHP, я хочу перепроверить:
- Достаточно ли использовать
htmlspecialchars
? - Должны ли мы создавать правила перезаписи URL?