php防止站外远程提交表单的方法


Posted in PHP onOctober 20, 2014

本文实例讲述了php防止站外远程提交表单的方法,分享给大家供大家参考。具体实现方法如下:

一般来说防止站长提交表单无非就是对每一次打开表单或提交数据都会需要加一个token来进行验证了,这个其实与验证码做法没什么两样了,下面来看几个防止站外远程提交表单的例子。

例子一:我们每一次打开提交页面生成一个token然后保存在session中,当表单提交时我们来判断当前的token值与session是否一致,如果是的就是正常提交否则就是无效提交了。

具体代码如下:

<?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>

还有一种比较明显的做法就是利用验证码了,这种验证码的方式与其它的方式是一样的哦,下面看个简单的例子

例子二:增加验证码

表单提交时候增加验证码,可以有效防止灌水机提交数据。但是随着图形图像识别程序变的更加强大,验证码识别也不断的在提高他的难度,有些验证码甚至加入了声音的识别,一些小站点可以采用这样的方式。

if($_POST['vcode'] != get_vcode())

{

    exit('验证码校验失败,无法入库');

}

具体的例子感兴趣的读者可以在网上到很多验证的相关例子。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
isset和empty的区别
Jan 15 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
PHP测试程序运行时间的类
Feb 05 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 #PHP
php实现给图片加灰色半透明效果的方法
Oct 20 #PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 #PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 #PHP
php实现删除指定目录下相关文件的方法
Oct 20 #PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 #PHP
php实现过滤表单提交中html标签的方法
Oct 17 #PHP
You might like
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
php跨域调用json的例子
2013/11/13 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python同步两个文件夹下的内容
2019/08/29 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
HOTEL INFO英国:搜索全球酒店
2019/08/08 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
大型晚会策划方案
2014/02/06 职场文书
学生手册评语
2014/05/05 职场文书
数控机床专业自荐信
2014/05/19 职场文书
师德师风个人整改措施
2014/10/27 职场文书
工作经验交流材料
2014/12/30 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书