PHP编程:php防止站外远程提交表单的方法
发布时间:2020-12-13 02:05:16 所属栏目:PHP教程 来源:网络整理
导读:《php防止站外远程提交表单的方法》要点: 本文介绍了php防止站外远程提交表单的方法,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解php防止站外远程提交表单的办法,供大家参考研究.具体实现办法如下: PHP实战 一般来说防止站长提交表单
《php防止站外远程提交表单的方法》要点: 本篇章节讲解php防止站外远程提交表单的办法,分享给大家供大家参考.具体实现办法如下:PHP实战 一般来说防止站长提交表单无非就是对每一次打开表单或提交数据都会需要加一个token来进行验证了,这个其实与验证码做法没什么两样了,下面来看几个防止站外远程提交表单的例子.PHP实战 例子一:我们每一次打开提交页面生成一个token然后保存在session中,当表单提交时我们来判断当前的token值与session是否一致,如果是的就是正常提交否则就是无效提交了.PHP实战 具体代码如下:PHP实战
代码如下:
<?php????
session_start();???? ???? if ($_POST['submit'] == "go"){???? ??? //check token???? ??? if ($_POST['token'] == $_SESSION['token']){???? ??????? //strip_tags???? ??????? $name = strip_tags($_POST['name']);???? ??????? $name = substr($name,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> 还有一种比较明显的做法就是利用验证码了,这种验证码的方式与其它的方式是一样的哦,下面看个简单的例子 例子二:增加验证码 表单提交时候增加验证码,可以有效防止灌水机提交数据.但是随着图形图像识别程序变的更加强大,验证码识别也不断的在提高他的难度,有些验证码甚至加入了声音的识别,一些小站点可以采用这样的方式.
代码如下:
if($_POST['vcode'] != get_vcode())
{ ??? exit('验证码校验失败,无法入库'); } 具体的例子感兴趣的读者可以在网上到很多验证的相关例子. 希望本文所述对大家的PHP程序设计有所赞助.PHP实战 《php防止站外远程提交表单的方法》是否对您有启发,欢迎查看更多与《php防止站外远程提交表单的方法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |