Joomla 登录及发贴 "Invalid Token" 解决办法

本文介绍了如何解决Joomla登录和发表帖子时遇到的'Invalid Token'错误。通过修改/joomla/environment/request.php文件中特定行的代码,禁用全局Token验证。此外,还提供了一种更安全的修改方法,即替换/administrator/components/com_content/controller.php中的Token验证代码。建议使用发布接口以获得最佳效果。

Joomla 登录及发贴 "Invalid Token" 解决办法

其实这个东东呀,直接用火车头写正确了登录随机值就可以了,但是说,他的token的name属性写在后面去了,所以这种登录随机值不好获取,那么我们就可以这样做,取消全局验证Token的功能!

这样的话就可以打开 /libraries/joomla/environment/request.php 这个文件,从435行左右开始修改,[color=Red][b]其实就是将大概在 447 行左右的 return false; 改为 return true; ,就是说不管这个token的值正确与否,都返回true即可![/b][/color][code]        function checkToken( $method = 'post' )
        {
                $token        = JUtility::getToken();
                if(!JRequest::getVar( $token, '', $method, 'alnum' )) {
                        $session = JFactory::getSession();
                        if($session->isNew()) {
                                //Redirect to login screen
                                global $mainframe;
                                $return = JRoute::_('index.php');
;                                $mainframe->redirect($return, JText::_('SESSION_EXPIRED'));
                                $mainframe->close();
                        } else {
                                return false;
                        }
                } else {
                        return true;
                }
        }
[/code]改为[code]        function checkToken( $method = 'post' )
        {
                $token        = JUtility::getToken();
                if(!JRequest::getVar( $token, '', $method, 'alnum' )) {
                        $session = JFactory::getSession();
                        if($session->isNew()) {
                                //Redirect to login screen
                                global $mainframe;
                                $return = JRoute::_('index.php');
;                                $mainframe->redirect($return, JText::_('SESSION_EXPIRED'));
                                $mainframe->close();
                        } else {
                                return true;
                        }
                } else {
                        return true;
                }
        }
[/code]这种修改,一般来说没有什么风险,但是如果有风险,嘿嘿,就只能认了!

孤魂 发表于 2009-8-26 18:57

安全一点的修改方法

/administrator/components/com_content/controller.php
将这个文件里面的所有[code]JRequest::checkToken() or jexit( 'Invalid Token' );[/code]替换成[code]//JRequest::checkToken() or jexit( 'Invalid Token' );[/code]
这样只是删除掉发布文章这块的token值验证,好了,完了,最方便的方法还是写发布接口,嘿嘿,一般人我不告诉他!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值