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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
php SQL防注入代码集合
Apr 25 PHP
php下将XML转换为数组
Jan 01 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
php将图片保存入mysql数据库失败的解决方法
Dec 27 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
php表单提交问题的解决方法
2011/04/12 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 命令行非阻塞输入的小例子
2013/09/27 Python
python进阶教程之模块(module)介绍
2014/08/30 Python
Python实现登录接口的示例代码
2017/07/21 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
python实现快递价格查询系统
2020/03/03 Python
python读取xml文件方法解析
2020/08/04 Python
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
倡议书格式
2014/04/14 职场文书
公司副总经理任命书
2014/06/05 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
担保书范本
2015/01/20 职场文书
清洁工个人总结
2015/03/04 职场文书
初中体育课教学反思
2016/02/16 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js