2010-08-02 3 views
4

공개 위치의 컴퓨터에서 인증없이 사용할 수있는 응용 프로그램이 있습니다. 사용자가 결혼 라이센스를 신청할 수있는 간단한 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 

답변

0

난 당신이 올바른 생각을 가지고 생각합니다. "종료/제출"에서 세션을 종료하면 내가 추천하는 것이됩니다. 여전히 owasp top 10을 읽고 일반적인 취약점을 염두에 두십시오.

1) HTTPS를 사용해야합니다.

2) 응용 프로그램을 공개하기 전에 항상 항상 응용 프로그램을 테스트하여 취약성을 테스트하십시오. Wapiti (무료), Acunetix ($) 또는 NTOSpider ($$$$)를 사용하는 것이 좋습니다.

3) 서버를 최신 상태로 유지하고 OpenVAS을 실행하여 서버가 안전한지 확인하십시오.

+0

감사합니다. 앱이 호스팅 된 HTTPS가됩니다. 세션 죽이기가 잘 작동하고 있습니다. 그러나 Chrome과 Safari는 실제로 페이지 데이터를 캐싱하고 유지하는 것을 멈출 수 있으므로 좌절감을 느낍니다. 창이 닫히고 페이지가 방문 기록에서 액세스되면 멋지다. 그러나 페이지가 닫히지 않고 뒤로 버튼에서 페이지를 가져 오는 경우 양식 값이 막대합니다. –

+0

@Jason Butera 자바 스크립트를 사용하여 페이지가로드 될 때 ''모두를 지울 수 있습니다. – rook

+0

그래도 사용자는 세션에서 해당 페이지를 다시 방문 할 수 있으며 세션 라이센스 ID에서 Page_Load에로드 된 데이터가 지워집니다. –

0
+1

감사합니다. 해당 게시물을 읽었습니다. 하지만 공개적으로 사용할 수있는 웹 사이트와 공용 컴퓨터에서 사용할 수있는 웹 사이트에는 뚜렷한 차이점이 있다고 생각합니다. 후자는 보안 문제에 더 관심이있는 곳입니다. –

1

키오스크 앱이므로 브라우저에서 아무 것도 캐시하지 않도록 요청하도록 브라우저를 설정해야합니다.

지난 번에 서버 측의 no-cache 헤더의 효과를 조사한 결과, 사용자 정의 된 버그가 있거나 흔하지 않은 브라우저를 사용하는 사람은 문서를 캐시하지 않는 요청을하지 않을 수도 있다는 것을 깨달았습니다.

일부 페이지 (예 : 세션 페이지 끝 부분) 및 내비게이션내어 찍기에 자바 스크립트 뒤로 버튼 분리기를 추가 할 수는 있지만 뒤로 버튼을 아무도 깨뜨릴 수 없기 때문에 모든 페이지가 아닐 수 있습니다.

0

JavaScript를 사용하십시오. 캡처하고 각 양식의 submit 이벤트를 방지하고 데이터를 가져 와서 아약스를 통해 제출 한 다음 양식의 기본 reset() 메서드를 사용해야합니다. 거기에서 아약스 결과에 따라 다른 위치로 이동하거나 유효성 검사 오류를 표시 할 수 있습니다. jQuery로 쉽습니다.

관련 문제