文档章节

CodeIgniter中使用CSRF TOKEN的一个坑

elenahu
 elenahu
发布于 2014/10/12 12:21
字数 453
阅读 286
收藏 0

精选30+云产品,助力企业轻松上云!>>>

事情的经过是这样的,一个自动化扫描工具说我的代码中存在XSS漏洞,什么是XSS不懂的朋友可以看这里

我的代码里面开启CodeIgniter框架的CSRF Token,如下:

NewImage

很简单,更多详情参考CI官方文档,主要用法就是在form_open时候自动插入一个隐藏的token值,当然还可以直接用php echo security->csrf_hash来配合其他一些用法,这里不多说。

接下来说说我的代码,Controller中代码如下:

NewImage

视图层代码这里页写得比较简单:

NewImage

代码中只是生成一个form里面带有token用于页面和服务器之间进行交流的。

代码介绍完了,接下来就来看自动化工具认为存在xss的地方。

NewImage

自动化工具是通过这两处来判断的。因此我们查看form_open的源码:

NewImage

可以看到,当form_open函数的action为空的时候,form的action会默认取当前的url。

如果当前的url有“岂不是可以截断html从而造成xss了,带着这样想法,我们来构造一下:

NewImage

默认是会被ci框架拦截的,因为存在非法字符,这个字符定义是在config.php中:

NewImage

有些时候url出现中文本拦截也是因为这个配置。

大致运行的流程如下:

NewImage         index.php

NewImage                    CodeIgniter.php

NewImage            Router.php

NewImage            URI.php

NewImage            URI.php

从上的例子可以看到,如果form_open空参数的可能带来一定的安全问题,但是默认情况下CI是拦截这些非法字符的,因此不会造成威胁。但是为了安全我们应该养成好的习惯,form_open必须有非空的action参数,就算这个form表单你不会使用。

elenahu

elenahu

粉丝 6
博文 19
码字总数 0
作品 0
深圳
技术主管
私信 提问
加载中
请先登录后再评论。
Codeigniter 基本配置

Codeigniter 基本配置 引领科技为您讲解配置 codeigniter,codeigniter 基本配置信息在 application/config/config.php 文件,本文详细讲解每一个基本配置选项,从而快速掌握 codeigniter 进...

Neo_
2013/03/11
14
0
一起学习CI-2.CI是什么?

【本文参考CI官方文档 http://codeigniter.org.cn/userguide/overview/ataglance.html】 CodeIgniter 是一个应用程序框架 CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包。...

酒肉穿肠过
2013/10/04
58
0
CodeIgniter 3.0 RC 发布,PHP 的 MVC 框架

CodeIgniter 3.0 RC 发布,此版本现已提供下载(ZIP)。详细更新内容请看这里:https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/changelog.rst。 前几天还发布了...

愤怒的小兔
2015/01/27
6K
58
CodeIgniter集成Smarty

CodeIgniter是一款很优秀的轻量级MVC框架,而Smarty是目前最流行的php模板框架。两者配合起来使用,加快开发效率。 第一步:安装CodeIgniter 点击立即下载最新版本的Zip包>> 解压后,复制文件...

mickelfeng
2013/04/02
22
0
CodeIgniter框架介绍

CodeIgniter 是一个应用程序框架 CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包。它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库...

Junn
2014/06/09
184
0

没有更多内容

加载失败,请刷新页面

加载更多

App Builder 2020中文版

教程: 1、断开网络连接,下载解压,运行对应操作系统App Builder 2020安装包; 2、在弹出的窗口中勾选同意条款协议,点击【Next】; 3、创建桌面快捷方式,点击【Next】; 4、一切准备就绪,...

osc_62a7f5bj
42分钟前
19
0
蚂蚁金服轻量级类隔离框架 Maven 打包插件解析 | SOFAArk 源码解析

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 本文为《...

SOFAStack
03/19
11
0
Java 高级 面试题 及 参考答案

一、面试题基础总结 1、 JVM结构原理、GC工作机制详解 答:具体参照:JVM结构、GC工作机制详解 ,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无...

osc_np3y0rbq
43分钟前
10
0
面试准备季——MyBatis 面试专题(含答案)

写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-...

osc_1ipdqsf2
45分钟前
8
0
Redis 高频面试题:10w+QPS 的 Redis 真的只是因为单线程和基于内存?

你以为 Redis 这么快仅仅因为单线程和基于内存? 那么你想得太少了,我个人认为 Redis 的快是基于多方面的:不但是单线程和内存,还有底层的数据结构设计,网络通信的设计,主从、哨兵和集群...

osc_qgfjs4a5
45分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部