Достаточно ли htmlspecialchars против XSS низкого уровня в моем случае? - PullRequest
0 голосов
/ 04 марта 2011

Я добавил функциональность своему администратору, чтобы он сохранял URL-адрес, к которому вы пытались обратиться, прежде чем он попросил вас войти в систему.Итак, если вы перейдете по адресу:

/admin/foo/bar?baz

Он перенаправит вас на:

/admin/auth/login

После входа в систему, до моегонадстройка функции вы всегда переходили на /admin/user/profile.Прямо сейчас я сохраняю /admin/foo/bar?baz в переменной сеанса, $_SESSION['from'].

В логине <form> скрытое значение принимает значение сеанса:

<input type="hidden" name="from" value="<?php echo htmlspecialchars($_SESSION['from'];)?>">

Затем, после отправки формы, происходит перенаправление:

header('Location: ' . $_POST['from'] );

Я видел другие вопросы, касающиеся XSS и htmlspecialchars, и знаю, что это не исправит все возможные попытки XSS, но будет ли это успешно работать против попыток XSS "низкого уровня"?

1 Ответ

0 голосов
/ 14 марта 2011

Хотя здесь нет XSS-атаки, если вы используете немного более старую версию PHP, вы откроете себе до HTTP-заголовка , что может быть хуже в некоторых случаях.

Если вы выбираете URL-адрес, который должен быть возвращен, от реферера HTTP, то вы должны быть достаточно хорошо защищены, если убедитесь, что URL-адрес равен вам * 1008.* управляет анализом , затем сохраняет только путь возврата и строку запроса.При выполнении окончательного перенаправления вы должны убедиться, что компоненты пути правильно закодированы в URL.Вы можете сохранить обратный URL-адрес целиком в сеансе, а не выдавать его пользователю обратно для возможного манипулирования во время входа в систему.

...