Таким образом, вы говорите, что ваша страница загружает HTML-файлы динамически с сервера, используя JavaScript API, такой как fetch
, а затем использует JavaScript History API , чтобы обновить URL с помощьюимя файла HTML, который был загружен?Таким образом, первый URL-адрес - /page?name=logincheck.html
, а затем он изменяет URL-адрес на /page?name=thetool.html
после выполнения проверки входа в систему без перезагрузки страницы?
Если так работает ваше приложение, теоретически вы можете отключить перезапись URL-адреса.- приложение все еще может знать, на какой странице оно находится, потому что JavaScript может сохранить текущую страницу в переменную.Тогда пользователи никогда не увидят URL с thetool.html
, который обходит проверку входа в систему.Но эта настройка не защитит вас от злонамеренного хакера, который может угадать, что thetool.html
- это существующая страница.
Если вы хотите запретить пользователям загружать определенную страницу, выберите правильное место для проверки.это на стороне сервера .Если вы выполняете проверки безопасности в JavaScript, злонамеренный пользователь может попросить свой браузер игнорировать этот JavaScript, и вместо этого запустить собственный JavaScript, который не выполняет проверку.
Как проверить на стороне сервера, является ли кто-либовход в систему зависит от того, какое серверное программное обеспечение вы используете (Apache Server, приложение Java Spring MVC, приложение Ruby on Rails) и как ваша текущая страница входа в систему в настоящее время сообщает остальной части вашего программного обеспечения, что пользователь вошел в систему (файл cookie,строка в таблице sessions
в базе данных, веб-токен JSON , сохраненный в локальном хранилище).Я не могу давать инструкции, не зная программного обеспечения и метода аутентификации, который вы используете, но я могу вам сказать, что это возможно.
В общем, вход в систему должен сообщать серверу о создании нового пользовательского сеанса, исохраните куки в браузере, ссылающемся на этот сеанс.Всякий раз, когда браузер запрашивает защищенную страницу, серверное программное обеспечение должно сначала проверить, был ли отправлен файл cookie сеанса и соответствует ли файл cookie сеанса действующему в настоящее время сеансу.Если это не так, серверное программное обеспечение должно отправить пустую страницу с кодом состояния 403 Forbidden вместо реальной страницы.