PHP檢查表單提交是否來自於本站(驗證HTTP_REFERER等)

方法一: 
你能夠把處理提交數據的代碼寫到一個單獨的文件裏,好比form.php。    
  <?php    
  if   (defined(’INSIDE’))   {//判斷是否有定義INSIDE常量    
  //處理表單    
  }   else   {    
  exit(’錯誤’);    
  }    
  ?>    
     
  而後,在提交表單的那個頁面先定義INSIDE這個常量,常量值無所謂    
  define(’INSIDE’,   ’TRUE’);    
     
  接着,判斷是否有提交,若是提交,則    
  include   ’form.php’; 

======================================================================================= 方法二: 

<?php  
if(PHP_VERSION<’4.1.0’){$_SERVER = $HTTP_SERVER_VARS;}  
if(isset($_SERVER["HTTP_REFERER"])){  
//針對部分瀏覽器可能無HTTP_REFERER,因此作這麼一個判斷  
    $servername=$_SERVER[’SERVER_NAME’];  
    $sub_from=$_SERVER["HTTP_REFERER"];  
    $sub_len=strlen($servername);  
    $checkfrom=substr($sub_from,7,$sub_len);  
    if($checkfrom!=$servername)  
    {  
        echo "<script language=’javascript’>window.alert(’數據來源有誤,本站不接收站外提交的數據!’);window.opener=self;window.close();</script>";  
        exit;  
    }  
}  
?>  
    此方法並不是絕對安全,由於HTTP_REFERER是能夠僞造的,只能是防君子但不能防小人了,但在通常狀況下已經夠用。javascript

 

From: http://www.3lian.com/edu/2010/11-30/3732.htmlphp

相關文章
相關標籤/搜索