PHP防止远程非法提交表单程序代码

在ASP中,可没有这么好哦!看例子:submit_0.php和submit_1.php 如下:

具体方法

!--文件submit_0.php --form action=submit_1.php method=postinput type=image src=exa.gif name=sub1/form

一、PHP防止站外提交数据的方法

下面的代码显示点击的坐标

 代码如下

?php#文件get.phpecho 您鼠标点的横坐标为:.$sub1_x.br;echo 您鼠标点的纵坐标为:.$sub1_y.br;?

<?
$servername=$HTTP_SERVER_VARS[‘SERVER_NAME’];
澳门新葡亰手机版,$sub_from=$HTTP_SERVER_VARS[“HTTP_REFERER”];
$sub_len=strlen($servername);
$checkfrom=substr($sub_from,7,$sub_len);
if($checkfrom!=$servername){
echo(“警告!你正在从外部提交数据!!请立即终止!!”);
exit;
}
?>

说明:

把以上代码放到需要防止外部提交数据的页面中,如果是直接输入网址或者是从外部网部链接到本页,则显示:警告!你正在从外部提交数据!!请立即终止!!;如果系从本站链接或通过表单提交到该页,则无此提示。这样做主要是为了防止一些伪造表单向站内提交数据

一、$sub1_x和$sub1_y两个变量自动生成

上面的代码通过curl可直接跳过了,我们可以参考dz论坛登录的一种做法

二、生成的变量是:提交图片的名字加上_x或_y,分别表示横纵坐标

处理远程表单提交更好的方式是,根据一个惟一的字符串或时间戳生成一个令牌,并将这个令牌放在会话变量和表单中。提交表单之后,检查两个令牌是否匹配。如果不匹配,就知道有人试图从表单的远程副本发送数据。

最后:大家可以发挥您的智慧,利用它实现很多好的效果

要创建随机的令牌,可以使用 PHP 内置的 md5()、uniqid() 和 rand()
函数,如下所示