- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
最近在设计一款产品,需要POST登录PHPWind,然而众所周知,PHPWind9(以下简称pw9)自身拥有安全策略,详情各位可以自己去phpwind官方论坛看。安全策略的存在会导致即便站长关闭验证码策略依然在登陆时会显示验证码(前提是该用户重试太多次).
要POST登录,并且不需要验证码,就得处理这个问题,然而官方并没有提供解决的方案,只能依赖自己处理.
首先要明白,phpwind不像众多简单的php程序一般只是简单的该页面代码放置于对应文件中,每一次访问都会调用wekit.php,再由wekit调用插件,应用,服务。分析完毕后,我们就可以解决问题了.
Login,登录部分,在路径.\src\applications\u\controller 下,从文件名不难认出,LoginController.php就是用于登录的部分(这部分其实看着英文名来看就知道) 这时候我们贴出一段代码(后面我给备注了一些内容) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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
);
}
|
显而易见,首先我们需要屏蔽掉验证码显示部分.
将 。
1
|
$this
->setOutput(
$this
->_showVerify(),
'verify'
);
//验证码显示
|
修改成 。
1
|
//$this->setOutput($this->_showVerify(), 'verify');//验证码显示
|
至此,我们完成了验证码显示的隐藏,但是到这一步你如果登录会发现,居然提示验证码错误,所以我们需要进一步修改,使得更像没有验证码,是的!我们要不论如何都返回验证码成功.
验证码属于服务部分(详情看官方文档),文件在.\src\service\verify\srv中,同样按照文件名可以分辨出PwVerifyService.php就是提供验证码服务的主要文件.
这时候我又贴出一段代码(机遇部分备注内容) 。
1
2
3
4
5
6
7
8
9
10
11
|
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;
}
|
这里我给个简单粗暴的,具体其他方法不多说,想研究自己深入即可.
1
2
3
4
5
6
7
8
9
10
11
|
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手动屏蔽验证码解决后台关闭验证码但是依然显示的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。
最后此篇关于PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题的文章就讲到这里了,如果你想了解更多关于PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!