我使用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
}
});
});
您需要提供与上传请求一起发送的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,并正在使用数据库进行会话。所以我想知道头怎么会太大。是否无论如何都要检查标题是什么?或者看看我能做些什么来修复这个错误? 现在我仍然得到以下内容: