gpt4 book ai didi

codeigniter - (Codeigniter) Ion Auth CSRF 错误 :This form post did not pass our security checks (when loading views)

转载 作者:行者123 更新时间:2023-12-02 06:36:19 25 4
gpt4 key购买 nike

我在 Codeigniter 中使用 Ion Auth 身份验证库。当我加载页脚 View 时,我收到一个 CSRF 错误(此表单帖子未通过我们的安全检查)。当我删除页脚 View 时,它工作正常!我在这里做错了什么吗?谢谢!

function edit_user($id) {

//I'm only posting the last part of the code of edit_user function in the auth controller

$this->load->view('layout/header');
$this->_render_page('auth/edit_user', $this->data);
$this->load->view('layout/footer'); // I'm getting an error when I load this footer view.
}

这是我认为的代码。

<h1><?php echo lang('edit_user_heading');?></h1>
<p><?php echo lang('edit_user_subheading');?></p>

<div id="infoMessage"><?php echo $message;?></div>

<?php echo form_open(uri_string());?>

<p>
<?php echo lang('edit_user_fname_label', 'first_name');?> <br />
<?php echo form_input($first_name);?>
</p>

<p>
<?php echo lang('edit_user_lname_label', 'last_name');?> <br />
<?php echo form_input($last_name);?>
</p>

<p>
<?php echo lang('edit_user_company_label', 'company');?> <br />
<?php echo form_input($company);?>
</p>

<p>
<?php echo lang('edit_user_phone_label', 'phone');?> <br />
<?php echo form_input($phone);?>
</p>

<p>
<?php echo lang('edit_user_password_label', 'password');?> <br />
<?php echo form_input($password);?>
</p>

<p>
<?php echo lang('edit_user_password_confirm_label', 'password_confirm');?><br />
<?php echo form_input($password_confirm);?>
</p>

<h3><?php echo lang('edit_user_groups_heading');?></h3>
<?php foreach ($groups as $group):?>
<label class="checkbox">
<?php
$gID=$group['id'];
$checked = null;
$item = null;
foreach($currentGroups as $grp) {
if ($gID == $grp->id) {
$checked= ' checked="checked"';
break;
}
}
?>
<input type="checkbox" name="groups[]" value="<?php echo $group['id'];?>"<?php echo $checked;?>>
<?php echo $group['name'];?>
</label>
<?php endforeach?>

<?php echo form_hidden('id', $user->id);?>
<?php echo form_hidden($csrf); ?>

<p><?php echo form_submit('submit', lang('edit_user_submit_btn'));?></p>

<?php echo form_close();?>

最佳答案

Ion auth csrf 保护较旧。 CI-2 已经有

这是在发布表单时提供的安全性,例如:POST 来自本地还是服务器?

ion auth Controller 文件,您会看到如下代码:

// do we have a valid request?
if ($this->_valid_csrf_nonce() === FALSE)
{
show_error($this->lang->line('error_csrf'));
}

如果您删除这些验证,您将不会收到 csrf 错误

您可以使用 CI 核心库启用安全性

http://ellislab.com/codeigniter/user-guide/libraries/security.html

$config['csrf_protection'] = TRUE;

你必须使用 form_open() 标签来触发 csrf 保护。

关于codeigniter - (Codeigniter) Ion Auth CSRF 错误 :This form post did not pass our security checks (when loading views),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17584852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com