>  기사  >  백엔드 개발  >  site_php 팁 외부에서 양식을 원격으로 제출하는 것을 방지하는 PHP 방법

site_php 팁 외부에서 양식을 원격으로 제출하는 것을 방지하는 PHP 방법

WBOY
WBOY원래의
2016-05-16 20:34:38972검색

이 기사의 예에서는 PHP를 사용하여 사이트 외부의 원격 양식 제출을 방지하는 방법을 설명합니다. 참고용으로 공유하고 싶습니다. 구체적인 구현 방법은 다음과 같습니다.

일반적으로 웹마스터가 양식을 제출하지 못하도록 하는 것은 양식을 열거나 데이터를 제출할 때마다 확인을 위해 토큰을 추가하는 것에 지나지 않습니다. 이는 실제로 확인 코드 방법과 다르지 않습니다. 외부 원격 액세스를 방지합니다. 양식 예시를 제출하세요.

예시 1: 제출 페이지를 열 때마다 토큰을 생성하여 세션에 저장합니다. 양식이 제출되면 현재 토큰 값이 세션과 일치하는지 판단합니다. 정상적인 제출, 그렇지 않으면 유효하지 않은 제출입니다.

구체적인 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
session_start(); 
​  
if ($_POST['submit'] == "이동"){ 
//토큰 확인
If ($_POST['토큰'] == $_SESSION['토큰']){
              //strip_tags                                                             $name = Strip_tags($_POST['name']);                                                       $name = substr($name,0,40);                                         //잠재적인 16진수 문자를 모두 제거합니다
          $name = cleanHex($name);                                                          //계속 처리합니다....                        }else{  
//모든 처리를 중지하세요!
}  

​  
$token = md5(uniqid(rand(), true))
$_SESSION['토큰']= $토큰
​  
함수 cleanHex($input){
$clean = preg_replace("![][xX]([A-Fa-f0-9]{1,3})!", "",$input)
$clean 반환

?>
 







또 다른 확실한 방법은 인증 코드를 사용하는 것입니다. 이 인증 코드 방법은 아래의 간단한 예를 살펴보겠습니다.
예시 2: 인증 코드 추가

양식을 제출할 때 인증 코드를 추가하면 물 충전 기계가 데이터를 제출하는 것을 효과적으로 방지할 수 있습니다. 그러나 그래픽 및 이미지 인식 프로그램이 더욱 강력해지면서 인증코드 인식이 계속 어려워지고 있으며 일부 소규모 사이트에서는 이 방법을 사용할 수도 있습니다.




코드 복사

코드는 다음과 같습니다.

if($_POST['vcode'] != get_vcode ()) { exit('인증코드 확인에 실패하여 데이터베이스에 저장할 수 없습니다.'); } 구체적인 사례에 관심이 있는 독자는 인터넷에서 관련 검증 사례를 많이 찾을 수 있습니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.