공개 위치의 컴퓨터에서 인증없이 사용할 수있는 응용 프로그램이 있습니다. 사용자가 결혼 라이센스를 신청할 수있는 간단한 4 페이지 응용 프로그램입니다. 일부 사무소는 사무원이 서기를 진행하기 전에 자신의 정보를 기입 할 수있는 공용 컴퓨터 키오스크를 갖습니다. 그들은 또한 사무실을 방문하기 전에 집에서 그렇게 할 수 있습니다. 사용자가 이전 사용자의 입력에 액세스 할 수 없도록하려면 어떤 고려 사항을 사용해야합니까? 일부 양식 데이터에는 DOB, SSN 및 어머니의 처녀 이름과 같은 민감한 정보가 포함됩니다. 내 마스터 페이지 양식 태그 거짓공용 컴퓨터 또는 키오스크에서 사용되는 ASP.Net 웹 응용 프로그램의 보안 고려 사항
1. 해제 자동 완성
지금까지 내가 설정 한 자동 완성 =.
<form id="frmMain" runat="server" autocomplete="false">
2. 해제 페이지 캐싱
나는 또한 IE와 FF에서 페이지 캐싱을 해제 할 수있었습니다 만, 사파리와 크롬에서 그렇게 할 수 없습니다. 누가 트릭을 알아? 뒤로 버튼을 누르면 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 개의 후 세션을 죽일 것이다 각 페이지에 타이머를 구현 한 세션을을 관리 할 수 있습니다. 세션은 이전에 입력 한 데이터를로드하는 데 페이지가 사용하는 현재 응용 프로그램 ID를 보유합니다. 버튼을 클릭하면 더 많은 시간을 가질 수 있습니다. 타이머가 가동되면 메인 페이지로 리디렉션되어 Page_Load에서 세션을 종료합니다. 또한 사용자가 "완료/제출"버튼을 클릭하면이 페이지로 리디렉션됩니다. 세션이 종료되면 URL로 페이지를 탐색하면 이전 응용 프로그램이로드되지 않습니다. 그것은 새로운 것으로 취급 될 것입니다.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Session.Abandon();
}
4. 무엇을해야합니까? 여기
Your awesome suggestions/tips here
감사합니다. 앱이 호스팅 된 HTTPS가됩니다. 세션 죽이기가 잘 작동하고 있습니다. 그러나 Chrome과 Safari는 실제로 페이지 데이터를 캐싱하고 유지하는 것을 멈출 수 있으므로 좌절감을 느낍니다. 창이 닫히고 페이지가 방문 기록에서 액세스되면 멋지다. 그러나 페이지가 닫히지 않고 뒤로 버튼에서 페이지를 가져 오는 경우 양식 값이 막대합니다. –
@Jason Butera 자바 스크립트를 사용하여 페이지가로드 될 때 ''모두를 지울 수 있습니다. – rook
그래도 사용자는 세션에서 해당 페이지를 다시 방문 할 수 있으며 세션 라이센스 ID에서 Page_Load에로드 된 데이터가 지워집니다. –