break 发表于 2016-1-27 22:53:41

ci中的csrf问题

在config中开起了$config['csrf_protection'] = TRUE;

break 发表于 2016-2-17 18:57:13

$("#FeedbackButton").click(function() {
    if ($('#info').val() == '') {
      $('#info_error').html('请填写反馈内容!');
      return false;
    }
    var data = {
      "<?php echo $this->security->get_csrf_token_name(); ?>":"<?php echo $this->security->get_csrf_hash(); ?>",
      "info": $('#info').val(),
      "title": $('#title').val(),
    }
    $.ajax({
      type: 'POST',
      url: "./feed_back",
      data: 'data=' + JSON.stringify(data),
      success: function(result) {
            // console.log(result);
            if (result == 1) {
                alert('提交成功,谢谢您的反馈!');
            }else{
                $("#info_error").html("反馈失败!");
                $("#info_error").hide(1000);
                return false;
            }
      }
    });
});

关闭csrf是没问题的

break 发表于 2016-1-27 22:57:29

而且在ajax中加入了如下
    var data = {
      "info": $('#info').val(),
      "title": $('#title').val(),
      "<?php echo $this->security->get_csrf_token_name();?>":"<?php echo $this->security->get_csrf_hash();?>"
    }
最后查看cookie
Cookie:pgv_pvi=488370176; pgv_si=s5763857408; ci_session=6109f6555a30c062dda4bea335b33a0ffced287b; csrf_cookie_name=9976c5c9d7aa3588f8092ab86d059aa2; Hm_lvt_cf1920cd78fec4dcdfbe5f528a5aa8c6=1453900856; Hm_lpvt_cf1920cd78fec4dcdfbe5f528a5aa8c6=1453906528

data中也有data:{"info":"事实上试试","title":"学生","csrf_test_name":"9976c5c9d7aa3588f8092ab86d059aa2"}

但是就是报错 403The action you have requested is not allowed

Closer 发表于 2016-2-18 10:38:46

break 发表于 2016-2-17 18:57
$("#FeedbackButton").click(function() {
    if ($('#info').val() == '') {
      $('#info_error').h ...

你的沒問題應該僅限於 cookie 值吧 ?

url 我會建議給予完整路徑
可以使用 site_url()

data 則是可以直接接收 json 格式
意味著,即使你直接拿 var data 給 data
也是可以傳送成功
另外 'data=' 這是多餘的

你的問題可能來自於上述的兩個答案

 

Closer 发表于 2016-1-28 09:45:57

本帖最后由 Closer 于 2016-1-28 09:53 编辑

break 发表于 2016-1-27 22:57
而且在ajax中加入了如下
    var data = {
      "info": $('#info').val(),

route 或ajax 有寫錯的地方
無關 csrf

如果是 csrf 的問題,會有 CI 式的報錯

break 发表于 2016-2-11 09:46:53

Closer 发表于 2016-1-28 09:45
route 或ajax 有寫錯的地方
無關 csrf



能详细指点下吗?

Closer 发表于 2016-2-15 10:29:02

break 发表于 2016-2-11 09:46
能详细指点下吗?

關閉 CSRF 的情況
能正確傳值 ?

break 发表于 2016-2-15 21:30:19

Closer 发表于 2016-2-15 10:29
關閉 CSRF 的情況
能正確傳值 ?

能的,所有的代码都在上面贴出来了

Closer 发表于 2016-2-16 10:25:27

break 发表于 2016-2-15 21:30
能的,所有的代码都在上面贴出来了

我所謂能正確傳值是指
你送往該 route 的方法
然後直接 print_r() 或 die()
是否有反應 ?

break 发表于 2016-2-16 23:06:28

传不过去,403.能QQ指导吗?

Closer 发表于 2016-2-17 09:52:07

break 发表于 2016-2-16 23:06
传不过去,403.能QQ指导吗?

我很久沒在用 QQ 了
也許你可以提供完整的 ajax 程式碼 ?

ajax 傳送不成功
大多是 route 不正確和 ajax 傳輸格式錯誤有關
页: [1] 2
查看完整版本: ci中的csrf问题