PHP安全代码--POST方式提交数据

 1 function submitcheck($var) {
 2     if(!empty($_POST[$var]) && $_SERVER['REQUEST_METHOD'] == 'POST') {
 3         if((empty($_SERVER['HTTP_REFERER']) || 
 4 preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])) 
 5 && $_POST['formhash'] == formhash()) {
 6             return true;
 7         } else {
 8             showmessage('submit_invalid');
 9         }
10     } else {
11         return false;
12     }
13 }

 

1.在客户端加入formhash表单防伪码

 

<input type="hidden" value="71afa49c" name="formhash">

 

2.确保HTTP_REFERER为空(HTTP_REFERER是当前提交页面的来源页面的地址)

或者确保来源页面的域名与当前提交页面的域名一致。

posted @ 2012-04-17 17:45  zendwang  阅读(737)  评论(0编辑  收藏  举报