웹 페이지 기록 지우 기,후퇴 차단 버튼!

본 고 는 인터넷 에서 찾 을 수 있 는 각종 브 라 우 저 후퇴 금지 버튼 방안 을 소개 하고 각자 의 장단 점 과 적용 장 소 를 분석 하고 자 한다.1.많은 사람들 이"브 라 우 저의 후퇴 단 추 를 어떻게 사용 하지 않 습 니까?"라 고 물 었 습 니 다.또는"사용자 가 후퇴 단 추 를 누 르 면 이전에 찾 았 던 페이지 로 돌아 가 는 것 을 어떻게 방지 할 수 있 습 니까?"ASP 포럼 에서 도 가장 많이 묻 는 질문 중 하나 다.안 타 깝 게 도 답 은 매우 간단 합 니 다.브 라 우 저의 후퇴 단 추 를 사용 하지 않 을 수 없습니다.처음에 나 는 브 라 우 저의 후퇴 단 추 를 사용 하지 않 으 려 는 사람 이 있다 는 것 에 놀 랐 다.나중에 그렇게 많은 사람들 이 이 후퇴 단 추 를 사용 하지 않 으 려 고 하 는 것 을 보고 나 도 마음 이 놓 였 다.기본 적 인 상황 에서 사용자 가 폼 을 제출 한 후에 후퇴 단 추 를 통 해 폼 페이지 로 돌아 갈 수 있 기 때 문 입 니 다.('편집'단 추 를 사용 하 는 것 이 아 닙 니 다!)그리고 표 단 방향 데이터 베 이 스 를 다시 편집 하고 제출 하여 새로운 기록 을 삽입 합 니 다.이것 은 우리 가 보고 싶 지 않 은 것 이다.그래서 나 는 이런 상황 을 피 할 방법 을 찾기 로 했다.나 는 많은 사 이 트 를 방문 하여 이 사이트 들 이 소개 한 각종 실현 방법 을 참고 했다.만약 당신 이 ASP 프로 그래 밍 사 이 트 를 자주 방문한다 면,본 고 에서 소개 한 일부 내용 을 당신 은 이미 본 적 이 있 을 것 입 니 다.본 논문 의 임 무 는 여러 가지 가능 한 방법 을 모두 에 게 소개 한 후에 가장 좋 은 방법 을 찾 는 것 이다!2.캐 시 를 금지 하 는 것 은 제 가 찾 은 여러 방안 중에서 페이지 캐 시 를 금지 하 는 것 을 권장 합 니 다.구체 적 으로 서버 쪽 스 크 립 트 를 사용 합 니 다.다음 과 같 습 니 다

<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
%>
이런 방법 은 매우 효과 적 입 니 다!캐 시 에서 페이지 를 읽 는 것 이 아니 라 브 라 우 저 에 게 서버 다운로드 페이지 를 다시 접근 하도록 강제 합 니 다.이 방법 을 사용 할 때 프로그래머 의 주요 임 무 는 세 션 급 변 수 를 만 드 는 것 입 니 다.이 변 수 를 통 해 사용자 가 후퇴 단 추 를 통 해 접근 하기에 적합 하지 않 은 페이지 를 볼 수 있 는 지 확인 하 는 것 입 니 다.브 라 우 저 는 이 페이지 를 캐 시 하지 않 기 때문에 사용자 가 후퇴 단 추 를 누 르 면 브 라 우 저 는 이 페이지 를 다시 다운로드 합 니 다.이 때 프로그램 은 그 세 션 변 수 를 검사 하여 사용자 가 이 페이지 를 열 수 있 는 지 확인 할 수 있 습 니 다.예 를 들 어 우리 가 다음 과 같은 양식 이 있다 고 가정 한다. 

<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
If Len(Session("FirstTimeToPage")) > 0 then
&single; , 。
&single; , 。
Session("FirstTimeToPage") = ""
Response.Redirect "/Bar.asp"
Response.End
End If
&single; ,
&single;
%>
<form method=post action="SomePage.asp">
<input type=submit>
</form>
저 희 는 세 션 변 수 를 통 해 First TimeToPage 를 통 해 사용자 가 현재 페이지 를 처음 방문 하 는 지 확인 합 니 다.첫 번 째(즉,Session("First TimeToPage")가 어떤 값 을 포함 하지 않 는 다 면 세 션 변수의 값 을 지우 고 사용 자 를 시작 페이지 로 다시 지정 합 니 다.이렇게 하면 폼 을 제출 할 때(이때 Somepage.asp 가 열 립 니 다)FirstTimeToPage 에 값 을 부여 해 야 합 니 다.즉,SomePage.asp 에 다음 코드 를 추가 해 야 합 니 다.Session("First TimeToPage")="NO"이렇게 SomePage.asp 를 열 어 놓 은 사용자 가 후퇴 단 추 를 누 르 면 브 라 우 저 는 서버 다운로드 페이지 를 다시 요청 합 니 다.서버 는 Session("First TimeToPage")에 값 이 포함 되 어 있 는 지 확인 하고 Session("First TimeToPage")을 제거 합 니 다.사용 자 를 다른 페이지 로 다시 설정 합 니 다.물론 이 모든 것 은 사용자 가 쿠키 를 사용 해 야 합 니 다.그렇지 않 으 면 세 션 변 수 는 유효 하지 않 습 니 다.(이 문제 에 대한 더 많은 설명 은 For session variables to work 를 참조 하 십시오.must the Web visitor have cookies enabled?)또한,우 리 는 클 라 이언 트 코드 로 브 라 우 저 로 하여 금 웹 페이지 를 캐 시 하지 않 게 할 수 있 습 니 다

<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
위의 방법 으로 브 라 우 저 로 하여 금 웹 페이지 를 캐 시 하지 않도록 강제 할 경우 다음 과 같은 몇 가 지 를 주의해 야 합 니 다.안전 한 연결 을 사용 할 때 만'Pragma:no-cache'가 브 라 우 저 캐 시 페이지 를 방지 할 수 있 습 니 다.보안 보 호 를 받 지 않 는 페이지 에 대해'Pragma:no-cache'는'Expires:-1'과 같은 것 으로 간주 되 며,이때 브 라 우 저 는 여전히 페이지 를 캐 시 하지만 페이지 를 즉시 만 료 로 표시 합 니 다.IE 4 나 5 에 서 는'Cache-Control'META HTTP-EQUIV 태그 가 무시 되 고 작 동 하지 않 습 니 다.실제 응용 에서 우 리 는 이 코드 들 을 모두 추가 할 수 있다.그러나 이 방법 은 모든 브 라 우 저 에 적용 되 지 않 기 때문에 추천 하지 않 습 니 다.그러나 인 트 라 넷 환경 에서 관리자 가 사용자 가 어떤 브 라 우 저 를 사용 하 는 지 제어 할 수 있다 면 이런 방법 을 사용 하 는 사람 이 있 을 것 이 라 고 생각 합 니 다.3.다른 방법 은 다음 에 우리 가 토론 하고 자 하 는 방법 은 브 라 우 저 캐 시가 아 닌 뒤로 물 러 나 는 단추 자 체 를 중심 으로 합 니 다.여기 Rewiring the Back Button 참고 할 만 한 글 이 있 습 니 다.그러나 이런 방법 을 사용 하면 사용자 가 후퇴 단 추 를 눌 렀 을 때 예전 에 데 이 터 를 입력 한 페이지 를 보지 못 하지만 두 번 만 클릭 하면 된다 는 것 을 알 게 되 었 습 니 다.이것 은 우리 가 원 하 는 효과 가 아 닙 니 다.고 집 스 러 운 사용자 들 이 예방 조 치 를 돌아 가 는 방법 을 찾 을 수 있 기 때 문 입 니 다.또 다른 후퇴 단 추 를 사용 하지 않 는 방법 은 클 라 이언 트 자 바스 크 립 트 로 도구 막대 가 없 는 창 을 열 어 이전 페이지 로 돌아 가기 어렵 지만 불가능 한 것 은 아 닙 니 다.더 안전 하지만 상당히 짜증 나 는 방법 은 폼 을 제출 할 때 새로운 창 을 열 고 폼 이 있 는 창 을 닫 는 것 이다.그러나 나 는 이런 방법 은 진지 하 게 고려 할 필요 가 없다 고 생각한다.왜냐하면 우 리 는 사용자 가 양식 을 제출 할 때마다 새로운 창 을 열 수 없 기 때문이다.그렇다면 사용자 가 돌아 오지 않 으 려 는 페이지 에 도 자 바스 크 립 트 코드 를 추가 할 수 있 습 니까?이 페이지 에 추 가 된 자 바스 크 립 트 코드 는 전진 단 추 를 누 르 는 효 과 를 낼 수 있 으 며,사용자 가 후퇴 단 추 를 누 르 면 발생 하 는 동작 을 상쇄 합 니 다.이 기능 을 실현 하 는 자 바스 크 립 트 코드 는 다음 과 같다

<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>
마찬가지 로 이런 방법 은 효과 가 있 지만'가장 좋 은 방법'과 는 거리 가 멀다.나중에 나 는 또 어떤 사람 이 location.replace 로 한 페이지 에서 다른 페이지 로 옮 기 는 것 을 건의 하 는 것 을 보 았 다.이 방법의 원 리 는 현재 기록 을 새 페이지 의 URL 로 바 꾸 는 것 입 니 다.이렇게 하면 기록 을 탐색 하 는 데 한 페이지 만 있 고 후퇴 단 추 는 영원히 사용 할 수 없습니다.나 는 이것 이 바로 많은 사람들 이 찾 는 방법 이 라 고 생각 하지만,이런 방법 은 여전히 어떠한 상황 에서 도 가장 좋 은 방법 이 아니다.이 방법 을 사용 하 는 실례 는 다음 과 같다.이 페이지 로 후퇴 하 는 링크 를 금지 합 니 다아래 링크 를 시도 해 보십시오:이 페이지 로 후퇴 하 는 링크 를 금지 합 니 다!이러한 방법의 단점 은 Response.Redirect 를 간단하게 사용 하면 더 이상 유효 하지 않 습 니 다.이것 은 사용자 가 한 페이지 에서 다른 페이지 로 이동 할 때마다 클 라 이언 트 코드 로 location.history 를 제거 해 야 하기 때 문 입 니 다.또 이 방법 은 모든 방문 기록 이 아 닌 마지막 방문 기록 을 지 우 는 것 임 을 주의해 야 한다.위의 링크 를 클릭 하면 간단 한 HTML 페이지 를 열 것 입 니 다.후퇴 단 추 를 누 르 면 이 페이지 가 아니 라 이 페이지 이전의 페이지 를 볼 수 있 습 니 다!(물론 브 라 우 저 에 클 라 이언 트 자 바스 크 립 트 코드 를 사용 해 야 합 니 다.)자세히 찾 아 본 후에 나 는 브 라 우 저 후퇴 단 추 를 완전히 사용 하지 않 을 수 있 는 방법 을 찾 을 수 없다 는 것 을 알 게 되 었 다.여기 서 소개 하 는 모든 방법 은 어느 정도 에 사용자 가 이전 페이지 로 돌아 가 는 것 을 금지 할 수 있 지만 각자 의 한계 가 있다.후퇴 단 추 를 완전히 사용 하지 않 을 수 있 는 방법 이 없 기 때문에 가장 좋 은 방안 은 클 라 이언 트 스 크 립 트 와 서버 스 크 립 트 를 혼합 하 는 것 입 니 다.

좋은 웹페이지 즐겨찾기