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

具体方法

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

 代码如下 复制代码
<?
$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;
}
?>

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

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

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

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

 

 代码如下 复制代码
<SPAN style="FONT-SIZE: small"><?php
session_start();   
       
if ($_POST['submit'] == "go"){   
    //check token   
    if ($_POST['token'] == $_SESSION['token']){   
        //strip_tags   
        $name = strip_tags($_POST['name']);   
        $name = substr($name,0,40);   
        //clean out any potential hexadecimal characters   
        $name = cleanHex($name);   
        //continue processing....   
    }else{   
        //stop all processing! remote form posting attempt!   
    }   
}   
       
$token = md5(uniqid(rand(), true));   
$_SESSION['token']= $token;   
       
       
function cleanHex($input){   
    $clean = preg_replace("![][xX]([A-Fa-f0-9]{1,3})!", "",$input);   
    return $clean;   
}   
?>   
       
       
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">   
<p><label for="name">Name</label>   
<input type="text" name="name" id="name" size="20" maxlength="40"/></p>   
<input type="hidden" name="token" value="<?php echo $token;?>"/>   
<p><input type="submit" name="submit" value="go"/></p>   
</form>   </SPAN>

没事把以前写的asp写出来

ASP防止外部提交数据的方法

 代码如下 复制代码
<%
Server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
Server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If   mid(server_v1,8,len(server_v2))<>server_v2   then
     Response.write "警告!你正在从外部提交数据!!请立即终止!!"
     Response.End
End if
%>
时间: 2025-01-03 17:52:25

PHP防止远程非法提交表单程序代码的相关文章

自动提交表单程序!

问题描述 此程序运行后,输入网址,表单的文本框里面的数组后,点击运行后,就一直在刷新页面,自动提交表单到服务器,而且必须要突破网站的验证码!简单说:就是一个外挂程序,开启这个程序后,会根据输入的表单链接以及一些参数,不断请求服务器端的网址,知道这个表单可以提交后,自动提交表单,达到提交成功的目的!谁有现成的源码的,最好!谢谢指教! 解决方案 解决方案二:这种程序不可能通用的.如果你想求现成的,还是去雇一个程序员吧.解决方案三:读取验证码这有难度.因为验证码本身就是为了防止你这刷的.虽然可以写程序

按回车提交表单js代码

核心代码如下 //捕捉回车事件  代码如下 复制代码 document.onkeydown=function(e){  if(!e)e=window.event;  if((e.keyCode||e.which)==13){  tijiao();  } 完整实例  代码如下 复制代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"

php中限制ip段访问、禁止ip提交表单的代码分享_php技巧

在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR

asp (author:killer)禁止站外提交表单的代码

  使用asp尽量减少服务器端的工作量,这样就应该多使用javascript,把所有提交字段使用javascript或vbscript检测后提交给服务器,这样服务器就不必再作检测,而在提交时可能会有人修改script从本地提交,这样存在安全提交的问题,所以应该要求从服务器断路径提交,其他地址提交提交无无效: server_v2then response.write" " response.write"" response.write"你提交的路径有误,禁止

纯css实现漂亮的提交表单效果代码

Name图库 E-mail图库 Website图库

Jquery异步提交表单代码分享

 本文是jQuery结合ajax实现的异步提交表单的代码,是个人项目中提取出来的,分享给大家,有需要的小伙伴可以参考下.     功能很实用代码也很简单,就不多废话了,直接奉上: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $.ajax({ url:"mobileSurveyAction_addSurvey.action",//提交地址 data:$("#form1").serialize(),//将表单数据序列化 type:&

js 热键提交表单

回车提交表单 Java代码   <script>   document.onkeydown=function(event){       e = event ? event : (window.event ? window.event : null);       if(e.keyCode==13){       //执行的方法       alert('回车检测到了');       }   }   </script>   回车禁止提交功能(ie9,firefox,ie8,chr

jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)_jquery

键盘事件处理所有用户在键盘敲击的情况,不管在文本输入区域内部还是外部.键盘事件在不同的浏览器中作用的范围是不一样的,通常这种键盘事件可以作用于 Form元素,a标签元素,window ,document这样的元素上.在所有可以获得交点的元素上是可以触发键盘事件的,可以获得焦点的元素可以这样理解,在使用Tab键的时候可以跳跃到的元素就是可以使用键盘事件的元(在没有为这些元素设置tabindex属性值的情况下,当tabindex设置为负数的时候,在使用Tab键的时候就不会获得焦点).     键盘事

js 禁止回车提交表单二种方法

js 禁止回车提交表单二种方法 1.包含form表单 2.只有一个文本框 这样问题就可以解决了,破坏其中任何一个条件即可,一般的做法是加一个隐藏的文本框 当然你也可以在表单 form 后面加上一个 onsubmit 事件,返回 false,来阻止 form 提交 下面看一个回车提交表单的代码 script type="text/网页特效" language="javascript">    function keydown()      {