php - 会话用户数据无法使用 curl 获取数据
问题描述
我想实现 CSRF 攻击并将链接代码发送给用户。此 url 用作更改密码用户。
在此实施 CSRF 攻击中,黑客发送虚假 url 帖子curl
并发送参数“密码”以更改密码用户目标。
攻击目标代码
<?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;
在功能忘记密码
<?php
function forgot() {
var_dump($this->ci->session->userdata('user_info'));
}
来自假 url session user_id = 0,但我从这个 url http://localhost/onlineshop/change-password/forgot
id = 1检查
为什么会话无法从假网址获取会话?
解决方案
好吧,在推入您的 CI 会话时可能存在问题:
$arr_user['user_info']['id'] = 2 //any dummy value
// Add user data in session
$this->session->set_userdata($arr_user);
现在要检查并确定,请通过以下方式进行调试print_r($_SESSION);
现在在您想要的页面上,试试这个:
print_r($this->session->userdata);
或者
print_r($this->session->all_userdata());
您当前将启用所有值。还要确保您在页面上启用了会话。
在您忘记返回数据的位置时,
<?php
function forgot() {
$session_data = $this->ci->session->userdata('user_info');
echo json_encode($session_data);
}
推荐阅读
- download - Artifactory Nuget 存储库是否可以“直接下载云存储”?
- android - 如何将蛇案例转换为 Dart 中的正常句子?
- python - Tkinter 存储选择-变量内的值
- arrays - 在 C 中存储和打印数组
- python - 有没有办法通过flask app安装python包?
- react-native - 执行 doInBackground() 时出错 - Expo Barcode Scanner
- nginx - 使用 uwsgi 运行烧瓶时出现 Importerror
- java - 在 Mockito 中捕获静态方法调用的参数
- sql-server - IN (Select ...) 在特定数据库中的性能比 IN (values) 差得多
- jquery - 在参数数据中使用特殊字符调用 Ajax 时出现问题