本文目录一览:
- 1、CI 防注入方面,到底过滤特殊字符没有
- 2、CI框架,它是二次开发吗
- 3、选择php框架的六大误区有哪些
- 4、在PHP的CI框架中,kindeditor自动过滤尖括号,怎么办?
- 5、CI框架怎么引外部的CSS和JS文件
- 6、tp框架和ci框架哪个好
CI 防注入方面,到底过滤特殊字符没有
看这里
... sql_driver.php#L301
$this-input-post('name',true);
这个是XSS过滤
手册有注明的
首先要搞清 xss 过滤,和sql注入是两码事,两个转义的方式不同,你给出的需要过滤的串 不需要转义。
你可以验证xss 过滤 script xss 过滤是可以的,至于说防止sql注入,不要怀疑ci 防注入的能力,你可以亲自注入一下。就知道结果了
CI框架,它是二次开发吗
嗯,可以说两者区别并不大,但是如果一定要说区别:CI是国外的框架,TP是国产的。两个都是轻量级框架,也就是说,可能自身不能完成项目的所有需求,需要引入第三方库。两者都是简单易学,快捷程度依照你对框架的熟悉程度而不同。TP比CI出现的时间久一点,TP是国产,可能在开发文档,教学视频,论坛和使用者方面略比CI要多一点。目前国内使用比较多的php框架主要是这些:yii,thinkphp,codeigniter,cakephp。使用二次开发的系统比较多的是:discuz,magento,帝国,织梦等cms
选择php框架的六大误区有哪些
误区之一:简单的就是好的。因为简单易学,所以,上手也快。
实际上,我们不能保证你整天做的都是个人网站。或者是只有几个页面的网站。一旦遇到大型应用,小的框架往往是无能为力的。比如,有人选择kiwiphp,说一个最明显的缺陷:该框架到目前仍存在跨站脚本攻击漏洞。
误区之二:流行的就是好的。
比如,现在流行ROR方式,注解行敏捷开发模式,但并不是所有的应用都适合这些模式,这些框架充其量最多只能适应中型的网站的开发。甚至有可能,为了适应开发的需求,核心类库都需要改写。象CAKE,是照抄ROR模式的典型。而CI,则是敏捷开发模式的典型。我们可以看一下CI的LOGGER,日志类,如果你的项目中有CRONS,那么,这个日志类就不够用了。因为,它的输出模式定死了,就需要改写。如果你的项目中存在象BOM核销,或其它复杂的企业应用模块,很可能你需要邮件日志,短信日志,它是不能提供的。
误区之三:不知框架能够适用于哪一类工程。
CI对于大型门户类网站,它就只能算是一个玩具。没想到,这话居然超出了倔们的想象。它们认为,CI就是一具优秀的框架,一个经典。
误区之四:相信一些网站中的评论,评分,或用户的评比。
实质上,这些也不是均可以相信的。全世界都有初学者,你无法了解参与评分的是哪些人。虽说,目前CI,CAKE评分相当的高。但并不能说明,它们就是最好的。
误区之五:初生之犊不怕虎,这些人虽然很少,但也不乏这样的典型。
对所有框架均不满意,而另行重写自己的。我们认为,你重写了自己用,还说得过去。如果重写了,直接开源,那么,很可能对初学者造成误导。比如,国内的kiwiphp,连基本的服务端器凋数据验证还没有加上,XSS攻击根本就无任何屏蔽,框架就发布了。这也就是说,根本不知框架中究竟要提供哪些东西。当然,我们并不反对任何人再开发一个PHP的开发框架,但是,前提是,开发之前,你确实弄通了一些经典的框架,并且,你确实组织开发,而不是参与开发过大型的网站。没有这样的积累,你是无法能够工发出优秀的PHP开发框架的
误区之六:获奖的就是好的。
PRADO获奖了,FLEA也获奖了。PRADO做企业业应用,效率如何?无人能知。FLEA中,HEX色彩转RGB这个函数问题,早在一年多之前,我就提出过,但至今未见更新。当然,代码的成熟度肯定是随版本的更新而提高的,但版本更新的速度,以及用户量的多少,均是相关因素。CI,FLEA均是团队开发,而这种团队开发,代码的把关,就是一个很大的问题。CI中有相当成熟的代码,但也有相当初学者级的代码,这里就不多讲了。
在PHP的CI框架中,kindeditor自动过滤尖括号,怎么办?
你看看application/config/config.php 文件启用了 XSS 过滤
$config['global_xss_filtering'] = TRUE;
或者您 $this-input-post( 'c', TRUE );
都会自动过滤一些特殊附号的。
CI框架怎么引外部的CSS和JS文件
以CI框架使用2.0版本为例:
我们下载解压后就看到如下文件目录:
这里要注意一下:如果你使用版本较低的话,目录结构就不这样的了,不过不影响我们。
1 我们将application、system、index.php 上传到网站根目录下。
2 我们再在根目录下新建一个目录“resources” 来专门存放我们CSS、JS、image等资源(这里资源目录的结构可自行定义,我这里为了做演示,只是简单处理)。
这里css、JS等是不能放到application、system目录的(有网友就这么做)。 因为出于安全原因(或者MVC模式) 这里目录是只不能直接通过URL形式访问到的,这些目录里有一个..htaccess 文件,里包含一句代码:“Deny from all”。就是此命令阻止用户直接访问这些目录。
3 我们在 resources 目录里添加一个文件:ajax.js。 这样我们在VIEW层中的文件为index.html引入JS时,如下方式:
script type="text/javascript" src="url/ajax.js'?"/script
注这里url是你的网站绝对URL。
另外:
1 使用 BASE_URL() 函数
当然为了可维护性,你也可以用CI自带的BASE_URL来设置,如下:
1) 首先进入 application/config/config.php文件,在config.php文件中设置base_url:
$config['base_url'] =; //这里是你的网站根目录
2) 导入 BASE_URL()函数
base_url()函数是helper 函数,需要导入才能使用。
可以在控制器里如下导入:
$this-load-helper('url');
或者在config/autoload.php 文件里自动导入
/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array('url');
3) 然后进入VIEW层中具体页面中引入即可:
script type="text/javascript" src='?=base_url().'resources/Ajax.js'?'/script
2 隐藏了url中的index.php文件、使用URL重写规则时。当然我们有时为了URL SEO方面考虑,会将index.php 隐藏起来,即让URL重写。但要注意像CSS、JS等这些资源是要排除掉的。
我们在网站根目录里放入.htaccess文件,内容为:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt) #在这里写要排除的资源等
RewriteRule ^(.*)$ index.php/$1 [L]
也就是说:当用户访问resources目录、robots.txt文件时都不重定向到index.php, 其它一律重定向到index.php。
3 还是无效果?浏览器访问一下。
如果以上都OK后,还没有效果的话。就要看看JS、CSS是否引入进来了。你可以直接访问一下JS URL看是否有内容。
tp框架和ci框架哪个好
所有框架中最神奇的、开发最迅速的是ruby on rails,号称比别的框架快4倍,所言非虚,因为rails有自动代码生成器功能,创建一个模型,自动给你搭好CURD操作。后来的很多框架,包括django(python),lavarel(php),cakephp(php)都是模仿rails,但都不如rails,主要原因在于ruby语言本身的简洁与优美,读rails的代码感觉特别舒服,特别精练,一点不绕(很少有php框架中常见的大段检测、对比、if判断代码),而其它语言的框架都达不到这点
目前最活跃的框架是thinkphp、CI、YII社区也还可以,其余的社区人气很差,没法考虑,尤其是rails,在中国人气非常之低,配置与启动需用命令行,win系统不能很好兼容,问题都找不到答案,最终不得不舍弃。
从人气与文档详细上,最终胜出的是tp,ci,YII,ZEND至今连个中文手册都没有,直接pass,不管它号称多么强大,连个中文社区与文档都没有,出了问题还要翻墙看英文,太痛苦了
在TP、YII、CI三者的角逐中,YII同样有命令行(有命令行的一律减分),有自动生成器功能,但是有个巨大缺点:生成出很多不用的空文件夹,导致文件结构非常混乱,控制器文件、模型文件夹四处都有,不知道哪个跟哪个,而且YII的函数比较碎片化,语法不够清晰也不好懂,最终PASS
TP是国产的,如果CI给80分,TP也可以给75分,两者很接近,tp社区人气很活跃,有什么问题百度一搜就出来了,开源代码也非常多,类库集成度跟CI不相上下,差就差在文件结构上稍逊CI一些,语法易懂性也比CI稍差