我想做的是保护一些敏感表单免受codeigniter
但不是所有页面中的CSRF
攻击。
要保护从CSRF
如果我设置它在config.php它适用于所有的页面.有没有办法做到这一点只有一些页面通过设置在控制器?
$config['csrf_protection'] = TRUE;
为了获得更安全的方法,您应该始终打开CSRF保护,并且只在配置中的数组中免除一些您希望的页面。php文件。
$config['csrf_protection'] = TRUE;
然后设置您希望免除CSRF保护的链接数组:
$csrf_off = array(
"/api",
"/api/example",
"/somelink/something/example"
);
现在关闭这些阵列链接CSRF保护。
if (isset($_SERVER["REQUEST_URI"])) {
if (in_array($_SERVER["REQUEST_URI"],$csrf_off)) {
$config['csrf_protection'] = FALSE;
}
}
您可以通过编辑配置来实现这一点。php
文件
$config['csrf_protection'] = FALSE;
步骤1:创建要保护的页面数组
例如,$csrf_pages=array('login','test')
步骤2:检查是否有对受保护页面的请求,然后将其设置为TRUE;
if (isset($_SERVER["REQUEST_URI"])) {
foreach ($csrf_pages as $csrf_page){
if(stripos($_SERVER["REQUEST_URI"],$csrf_page) !== FALSE) {
$config['csrf_protection'] = TRUE;
break;
}
}
}
步骤3:将其添加到视图中
<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" />
或者简单地使用form_open()函数自动添加隐藏的CSRF令牌字段。
现在CI3有了这个特性,我们可以排除配置中的URIhttp://www.codeigniter.com/userguide3/libraries/security.html?highlight=csrf#cross-site-request-forgery-csrf
$config['csrf_exclude_uris'] = array('api/person/add');
$config['csrf_exclude_uris'] = array(
'api/record/[0-9]+',
'api/title/[a-z]+'
);
我有一个目标。我想通过删除除某些特定属性之外的所有属性来修改对象(而不是克隆它)。例如,如果我从这个对象开始: 并且只需要属性p1、p2和p100,如何获得此对象: 我明白如何用蛮力做到这一点,但我想要一个更优雅的解决方案。
问题内容: 我想在jQuery的更改事件上在服务器上上传图像,但是使用codeigniter csrf我只能上传一次图像。如何使用Ajax上传图像以进行多个请求。设置此功能时请注意 那么我能够发送多个请求jQuery onchange事件,但是当csrf_protection将为false时,我认为csrf没有任何优势。所以问题是启用csrf_protection时如何使用ajax发送多个请求。我
问题内容: 如何在除登录页面之外的所有页面上显示导航栏,从而不必在每个需要的页面上附加导航栏文件?现在,我在主应用程序布局上包含了导航栏,应如何处理使其保持干燥? 演示(每页上带有导航栏): 问题答案: 创建像这样的命名视图,并按状态按视图设置templateUrl。对于状态,只需不为视图提供templateUrl ,它就不会呈现导航栏。 更新 :隐藏在非状态。
我想更改PDF文档中特定几页的页面方向。PDF文档是使用html2pdf在html模板外创建的。它是这样的:如果页面的内容(通常是一个表格)太宽而不能以纵向显示,则以横向显示页面。 按照[如何将页面旋转为横向,页面内容应该为纵向iTextpdf][1]中的提示 [1]:如何将页面旋转成横向,页面内容应该在纵向iTextpdf中我已经创建了我的自定义标签和TagWorker。 } 问题是:首先,这没
问题内容: 我喜欢Django,但对于特定的应用程序,我只想使用其中的一部分,但是我对Django在内部的工作方式还不够熟悉,因此也许有人可以为我指明正确的方向查看。 具体来说,我想使用: 模型和数据库抽象 该缓存API,但我想通过缓存来避免数据库查询,而不是HTML生成,并且由于在Django的缓存框架适用于后者,我不 知道是否还没有这真的合适。 我不会使用: Templating urlcon
当我试图刮下面的url时,selenium在大约30秒内没有响应,然后在带有美丽汤的行上发出错误,因为没有html代码要解析。我的selenium+chrome设置对大多数网站都很好,但这个不是:http://www.11st.co.kr/product/sellerproductdetail.tmall?method=getsellerproductdetail&prdno=2609814501