Использование $ _SERVER ['PHP_SELF']; vs htmlentities ($ _ SERVER ['PHP_SELF']); по канонической ссылке на https - PullRequest
1 голос
/ 08 января 2020

ИТ-администратору сообщили, что при сканировании безопасности недавно приобретенного веб-сайта используется следующий общий фрагмент кода, который приведен ниже и используется в головной части веб-сайта и открывает множество уязвимостей, и его следует заменить на использование htmlentities.

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

Это самый безопасный способ обработки формы PHP

Если это на https, разве это не должно сводить на нет какой-либо потенциал уязвимости?

Оригинал

<link rel="canonical" href="https://www.ourwebsite.com<?php echo echo $_SERVER['PHP_SELF']; ?>" />

Новый

<link rel="canonical" href="https://www.ourwebsite.com<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" />

1 Ответ

1 голос
/ 08 января 2020

Проблема: пользователь может контролировать содержимое $ _SERVER ['PHP_SELF']

Допустим, ваш код находится в индексе. php

Поэтому, когда вы звоните https://www.yourserver.com/index.php ваш код будет работать как указано. Но index. php также будет вызываться, когда кто-то вызовет

http://localhost/phpinfo.php/%22/%3E%3Cscript%3Ealert('Hello');%3C/script%3E%3Cbr

. Часть /% 22 /% 3E% 3Cscript% 3Ealert ('Hello');% 3C / script% 3E% 3Cbr вызывается PATHINFO

Когда вы попробуете это, вы увидите, что некоторые javascript также будут выполнены.

Какой-то злой пользователь может сгенерировать такую ​​ссылку с любым javascript в нем и отправить ее по электронной почте его жертве в надежде, что он нажмет на нее, его javascript будет выполнен в браузере жертвы. Возможно, он сможет украсть идентификатор сеанса у этого пользователя и захватить его сеанс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...