PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题


Posted in PHP onAugust 12, 2016

最近在设计一款产品,需要POST登录PHPWind,然而众所周知,PHPWind9(以下简称pw9)自身拥有安全策略,详情各位可以自己去phpwind官方论坛看。安全策略的存在会导致即便站长关闭验证码策略依然在登陆时会显示验证码(前提是该用户重试太多次)。

要POST登录,并且不需要验证码,就得处理这个问题,然而官方并没有提供解决的方案,只能依赖自己处理。

首先要明白,phpwind不像众多简单的php程序一般只是简单的该页面代码放置于对应文件中,每一次访问都会调用wekit.php,再由wekit调用插件,应用,服务。分析完毕后,我们就可以解决问题了。

Login,登录部分,在路径.\src\applications\u\controller 下,从文件名不难认出,LoginController.php就是用于登录的部分(这部分其实看着英文名来看就知道)
这时候我们贴出一段代码(后面我给备注了一些内容)

public function run() {
$this->setOutput($this->_showVerify(), 'verify');//验证码显示
$this->setOutput('用户登录', 'title'); //设置页面标题
$this->setOutput($this->_filterUrl(false), 'url');
$this->setOutput(PwUserHelper::getLoginMessage(), 'loginWay');
$this->setOutput($this->getInput('invite'), 'invite');
$this->setTemplate('login');
Wind::import('SRV:seo.bo.PwSeoBo');
$seoBo = PwSeoBo::getInstance();
$lang = Wind::getComponent('i18n');
$seoBo->setCustomSeo($lang->getMessage('SEO:u.login.run.title'), '', '');
Wekit::setV('seo', $seoBo);
}

显而易见,首先我们需要屏蔽掉验证码显示部分。

$this->setOutput($this->_showVerify(), 'verify');//验证码显示

修改成

//$this->setOutput($this->_showVerify(), 'verify');//验证码显示

至此,我们完成了验证码显示的隐藏,但是到这一步你如果登录会发现,居然提示验证码错误,所以我们需要进一步修改,使得更像没有验证码,是的!我们要不论如何都返回验证码成功。

验证码属于服务部分(详情看官方文档),文件在.\src\service\verify\srv中,同样按照文件名可以分辨出PwVerifyService.php就是提供验证码服务的主要文件。

这时候我又贴出一段代码(机遇部分备注内容)

public function checkVerify($verifyType, $code = '') {
return true;
if ($code == '') return false;//如果验证码为空,返回验证码错误
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}

这里我给个简单粗暴的,具体其他方法不多说,想研究自己深入即可。

public function checkVerify($verifyType, $code = '') {
return true; //直接返回true,返回验证码正确
// if ($code == '') return false;
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}

至此,问题解决了。

以上所述是小编给大家介绍的PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
php 在线打包_支持子目录
Jun 28 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
PHP文件上传之多文件上传的实现思路
Jan 27 PHP
php头像上传预览实例代码
May 02 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
PHP请求Socket接口测试实例
Aug 12 #PHP
php+jquery+html实现点击不刷新加载更多的实例代码
Aug 12 #PHP
php网页版聊天软件实现代码
Aug 12 #PHP
PHP 自动加载的简单实现(推荐)
Aug 12 #PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 #PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 #PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 #PHP
You might like
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
php精度计算的问题解析
2019/06/21 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
小结Python的反射机制
2020/09/28 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
便利店的创业计划书
2014/01/15 职场文书
社区创先争优承诺书
2014/08/30 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
银行委托书范本
2014/09/28 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
运动会入场词
2015/07/18 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang