首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话用户数据不能使用curl获取数据

会话用户数据不能使用curl获取数据
EN

Stack Overflow用户
提问于 2019-08-23 05:02:20
回答 2查看 255关注 0票数 0

我想实现CSRF攻击和发送链接代码给用户。此url用作更改密码用户。

在此实现的CSRF攻击中,黑客使用curl发送假url帖子,并发送参数“密码”来更改密码用户目标。

攻击目标代码

代码语言:javascript
复制
<?php
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
                 "password=12345&re_password=12345");
curl_setopt($ch, CURLOPT_URL, 
                 "http://localhost/onlineshop/change-password/forgot");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
curl_close($ch);      
echo $output;

函数中忘记密码

代码语言:javascript
复制
<?php
function forgot() {
    var_dump($this->ci->session->userdata('user_info'));
}

来自假url会话user_id = 0,但我从这个url http://localhost/onlineshop/change-password/forgot id =1中检查。

为什么会话不能从假url获取会话?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-23 05:27:39

Curl请求不能进行会话,因为它是通过HTTP的请求,会话总是在用户的系统上维护。所以,首先,你必须建立强大的逻辑和程序来保护它,你不能用Curl检查csrf。你所做的不是一个好办法。

您应该设置一个令牌以及密码重置链接,并检查每当用户单击该标记来重置密码,并确保密码始终过期。

票数 0
EN

Stack Overflow用户

发布于 2019-08-23 05:18:37

好吧,也许在你的CI会议中有一些问题:

代码语言:javascript
复制
$arr_user['user_info']['id'] = 2 //any dummy value
// Add user data in session
$this->session->set_userdata($arr_user);

现在要检查并确定,请执行print_r($_SESSION);调试它

现在,在您想要的页面上,尝试如下:

代码语言:javascript
复制
print_r($this->session->userdata); 

代码语言:javascript
复制
print_r($this->session->all_userdata());

您将获得当前启用的所有值。还要确保在页面上启用了会话。

在你忘记你要返回数据的地方时,

代码语言:javascript
复制
<?php

    function forgot() {
        $session_data = $this->ci->session->userdata('user_info');
       echo json_encode($session_data);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57620139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档