> 백엔드 개발 > 파이썬 튜토리얼 > 양식의 중복 제출을 방지하기 위한 몇 가지 전략

양식의 중복 제출을 방지하기 위한 몇 가지 전략

高洛峰
풀어 주다: 2016-10-17 14:05:16
원래의
1420명이 탐색했습니다.

반복적인 양식 제출은 다중 사용자 웹 애플리케이션에서 가장 흔히 발생하는 문제이며 많은 문제를 야기합니다. 다음과 같이 제출 문제가 반복적으로 발생하는 신청 시나리오가 많이 있습니다.

제출 버튼을 두 번 클릭하세요.

새로고침 버튼을 클릭하세요.

브라우저 뒤로 버튼을 사용하여 이전 작업을 반복하면 양식 제출이 반복됩니다.

양식을 다시 제출하려면 브라우저 기록을 사용하세요.

브라우저에서 HTTP 요청이 중복되었습니다.

양식의 중복 제출을 방지하기 위한 몇 가지 전략

양식 반복 제출을 방지하는 여러 가지 방법

제출 버튼을 비활성화합니다. 양식이 제출된 후 제출 버튼을 비활성화하려면 Javascript를 사용하십시오. 이 접근 방식은 참을성이 없는 사용자가 버튼을 여러 번 클릭하는 것을 방지합니다. 하지만 클라이언트가 Javascript를 비활성화하면 문제가 발생합니다.

이전 기사에서 일부 Jquery 플러그인을 사용하면 효과가 있다고 말씀드렸습니다.

게시/리디렉션/가져오기 모드. 제출 후 페이지 리디렉션을 수행하는 것은 소위 PRG(Post-Redirect-Get) 패턴입니다. 즉, 사용자가 양식을 제출하면 클라이언트 측 리디렉션을 수행하고 제출 성공 정보 페이지로 이동합니다.

이렇게 하면 사용자가 F5 키를 눌러 발생하는 반복 제출을 방지할 수 있으며 브라우저 양식의 반복 제출에 대한 경고도 표시되지 않으며 브라우저의 앞으로 및 뒤로 버튼을 눌러 발생하는 동일한 문제도 제거할 수 있습니다. .

세션에 특수 플래그를 저장합니다. 양식 페이지가 요청되면 특수 문자열이 생성되어 세션에 저장되고 양식의 숨겨진 필드에 배치됩니다. Form 데이터를 접수 및 처리할 때 식별문자열이 존재하는지 확인하고 즉시 세션에서 삭제한 후 정상적으로 데이터를 처리합니다.

양식 제출에 유효한 플래그 문자열이 없는 것으로 확인되면 양식이 이미 제출되었으며 이 제출이 무시된다는 의미입니다.

이는 웹 애플리케이션에 더욱 향상된 XSRF 보호 기능을 제공합니다.

데이터베이스에 제약 조건을 추가합니다. 중복 데이터를 방지하려면 데이터베이스에 고유 제약 조건을 추가하거나 고유 인덱스를 생성하세요. 이는 데이터의 중복 제출을 방지하는 가장 효과적인 방법입니다.


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿