当前位置: 首页 > 知识库问答 >
问题:

fineuploader编码点火器CSRF保护

阴福
2023-03-14

我使用fineuploader和codeigniter。为了使上传更加安全,我想在配置中启用codeigniter提供的CSRF保护。现在,当使用codeigniter的表单助手时,它会自动向表单添加隐藏字段。

然而,我不知道如何使用fineuploader实现这一点,因为我这里没有可见的表单。有什么建议吗?

<script>
$(document).ready(function () {
    $('#bootstrapped-fine-uploader').fineUploader({
              request: {
                    endpoint: "<?= site_url('upload/doUpload') ?>",
  params: {"generateError": true}
  },
  chunking: {
  enabled: true
  },
  debug: true,
  text: {
  uploadButton: '<div><i class="icon-upload icon-white"></i> Datei auswählen</div>'
            },
              template: '<div class="qq-uploader span12">' +
                      '<pre class="qq-upload-drop-area span12"><span>{dragZoneText}</span></pre>' +
                      '<div class="qq-upload-button btn btn-success">{uploadButtonText}</div>' +
                      '<span class="qq-drop-processing"><span>{dropProcessingText}</span><span class="qq-drop-processing-spinner"></span></span>' +
                      '<ul class="qq-upload-list" style="margin-top: 10px; text-align: center;"></ul>' +
                      '</div>',
  validation: {
  allowedExtensions: [],
  sizeLimit: 1000 * 1000 * 800
  },
  showMessage: function(message) {
  // Using Twitter Bootstrap's classes and jQuery selector and method
  $('.qq-upload-list').append('<li class="alert alert-error">' + message + '</li>');
        },
        failedUploadTextDisplay: {
            mode: 'custom',
            maxChars: 100,
            responseProperty: 'error',
            enableTooltip: true
        },
        classes: {
            success: 'alert alert-success',
            fail: 'alert alert-error'
        },
        retry: {
            enableAuto: false
        }
    });
});

共有1个答案

孟英叡
2023-03-14

您需要提供与上传请求一起发送的CSRF令牌和参数中的哈希,然后在服务器端验证它。

默认情况下,Fine Uploader在请求主体中发送POST请求的数据。这是理想的跨浏览器解决方案。您可以通过向params选项添加键/值来修改请求中发送的参数。修改客户端代码,如下所示:

// snip ...
params: {
    "generateError": true,
    "<?php echo $CI->security->get_csrf_token_name(); ?>":"<?php echo $CI->security->get_csrf_hash()"
    }
 类似资料:
  • 我一直在阅读codeigniter中的crsf保护,但是我似乎找不到一个像样的教程,说明在配置文件中启用csrf后如何继续。 我有一个由控制器函数生成的表单,它提交给另一个函数。 我使用了form helper类,以便自动生成crsf字段。 我在提交功能上有这个验证功能: 但我得到的只是不允许的错误。验证csrf的正确方法是什么?还是我做错了什么?

  • //控制器 函数搜索($search=0){ } //模型函数search_employee($search ch雇员){$sql="选择清空代码,名称来自spmm_employee_info其中名称 '%" . $search ch雇员 . "%'"; $查询=$this- 当我尝试搜索并单击另一个页面时,它会显示表spmm_employee_info上的所有数据。所有我想要的是显示所有与搜索相

  • 我用的是Phil Sturgeon的 KEYS如何工作?有一个名为KEYS的表定义如下: 在名为KEYS的类中有如下方法: 由于这个软件包并没有很好的文档记录,而且我是API新手,所以上面的工作原理是什么?例如,我是否生成一个密钥并将其永久插入数据库。为什么会有删除方法? 从我的阅读资料来看,这听起来像是我为应用程序生成了一个初始的X-API-KEY,然后当客户端使用资源时,我会使用KEYS类将X

  • Fine Uploader 是一个采用Ajax技术实现的文件上传组件,支持拖拽文件上传。使用很简便,只需在页面中引入相应的CSS+JavaScript,剩下的就只服务器端处理逻辑。在其提供的下载包中已经有多种语言实现包括:ASP.NET, ColdFusion, Java, Node.js, Perl, PHP, Python 。 有一些选项可以来限制文件大小,文件类型,文件上传的数量等

  • CSRF是指针对Web应用程序的跨站点伪造攻击。 CSRF攻击是系统的经过身份验证的用户执行的未授权活动。 因此,许多Web应用程序容易受到这些攻击。 Laravel以下列方式提供CSRF保护 - Laravel包含一个内置的CSRF插件,可为每个活动用户会话生成令牌。 这些令牌验证相关的经过身份验证的用户是否发送了操作或请求。 实现 (Implementation) 本节将详细讨论Laravel

  • 我从Nginx得到了这个错误,但似乎无法解决它!我正在使用codeigniter,并正在使用数据库进行会话。所以我想知道头怎么会太大。是否无论如何都要检查标题是什么?或者看看我能做些什么来修复这个错误? 现在我仍然得到以下内容: