PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-如何在CodeIgniter中非表单的链接中添加和验证令牌(针对CSRF等)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我知道如何在CodeIgniter的表单中启用CSRF,但是我不确定如何在CodeIgniter经典链接中实现此功能(例如,在管理区域中添加/删除私人消息,帖子等)

现在我正在使用这样的东西:

视图

<?@L_262_4@ echo anchor('account/delete_private_@R_674_8798@ge/'.$obj->pmID, 'delete mesage', array('onclick' => 'return confirm(\'Do you really want to delete this private @R_674_8798@ge?\');', 'class' => 'delete-@R_674_8798@ge-button')); ?>

控制器

function delete_private_@R_674_8798@ge($pmID = '')
    {

        $deleted_pm = $this->account_R_184_11845@odel->delete_pm($pmID);

        if($deleted_pm)
        {
            $this->session->set_flashdata('status', 'PM was deleted successfully');
        }
        else
        {
            $this->session->set_flashdata('status', 'Error');
        }
        redirect('account/private_@R_674_8798@ges');
    }

模型

function delete_pm($pmID)
    {

        $return = 0;
        if(!empty($pmID))
        {
            $this->db->where('pmID', $pmID);
            $result = $this->db->delete('private_@R_674_8798@ges');
        }
        return $result;
    }

如果用户单击弹出窗口中的“确定”,则消息将被删除.

问题是如何将令牌添加链接用户会话并进行验证等.我不知道如何实现功能以使其正常工作.

编辑:我只是想我必须在链接的末尾添加生成的令牌,如:

值dfdf6e7re67a6e87r6e87r69876bn3也在当前用户的会话中,并在控制器中进行验证.但是,我不知道该怎么做.因此,感谢您的帮助.

解决方法:

您是正确的-只需将CSRF令牌作为链接的一部分传递即可.下面的示例应该有所帮助(但我尚未对其进行测试)

function delete_private_@R_674_8798@ge($pmID = '', $token = null)
{
    // check supplied token is valid
    if ( ! ($this->_check_token($token)))
    {
        // Not valid
        $this->session->set_flashdata('status', 'Error');
        redirect('account/private_@R_674_8798@ges');
    }


    if($this->account_R_184_11845@odel->delete_pm($pmID))
    {
        $this->session->set_flashdata('status', 'PM was deleted successfully');
    }
    else
    {
        $this->session->set_flashdata('status', 'Error');
    }
    redirect('account/private_@R_674_8798@ges');
}


function _check_token ($token)
{
      return ($token === $_COOKIE[$this->csrf_cookie_name]);
}

ps.您的模型代码错误

$return = 0;

应该

$result = 0;

大佬总结

以上是大佬教程为你收集整理的php-如何在CodeIgniter中非表单的链接中添加和验证令牌(针对CSRF等)?全部内容,希望文章能够帮你解决php-如何在CodeIgniter中非表单的链接中添加和验证令牌(针对CSRF等)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: