Я добавил функциональность в свою панель администратора, чтобы она сохраняла 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 «низкого уровня»?