У меня есть приложение, которое можно использовать без проверки подлинности на компьютерах в общественных местах.Это простое четырехстраничное приложение, которое позволяет пользователям подавать заявку на получение лицензии на брак.В некоторых офисах будет общедоступный компьютерный киоск, где кандидаты могут заполнить свою собственную информацию, прежде чем обращаться к клерку.Они также могут сделать это дома перед посещением офиса.Какие соображения я должен принять, чтобы убедиться, что пользователь не может получить доступ к данным предыдущего пользователя?Некоторые данные формы будут содержать конфиденциальную информацию, такую как DOB, SSN и девичья фамилия матери.
1.Отключить автозаполнение
Пока что я установил autocomplete = false в своем теге формы главной страницы.
<form id="frmMain" runat="server" autocomplete="false">
2.Отключить кэширование страниц
Я также смог отключить кэширование страниц в IE и FF, но не смог сделать это в Safari и Chrome.Кто-нибудь знает хитрость?Нажатие кнопки «Назад» по-прежнему отображает заполненные формы данных в Safari и Chrome.
// Disables page-caching in IE
Response.Cache.SetAllowResponseInBrowserHistory(false);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Expires = 0;
// HACK: fixes Firefoxes cache issue
Response.AddHeader("ETag", new Random().Next(1111111, 9999999).ToString());
3.Управление сеансом
Я также внедрил таймер на каждой странице, который завершит сеанс через n минут.Сеанс содержит идентификатор текущего приложения, с помощью которого страницы загружают ранее введенные данные.Они могут получить больше времени, нажав кнопку.Когда таймер включен, он перенаправляет обратно на главную страницу, где я прекращаю сеанс в Page_Load.Я также перенаправляю на эту страницу, когда пользователи нажимают кнопку «Готово / Отправить».После завершения сеанса переход на страницы по URL никогда не загрузит предыдущее приложение.Он будет считаться новым.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Session.Abandon();
}
4.что еще мне делать?
Your awesome suggestions/tips here