yii添加csrf验证

yii2X版本的请绕行,这里说的是yii 1.1.14版本。某某公司的老程序当中没有考虑csrf攻击,所以不幸中枪了。(具体地址我就不贴了,说下解决方案)

配置文件当中检查是否已开启csrf

components配置中没看到

‘request’=>array(
‘enableCsrfValidation’ => true,
)

的配置。如果全局开启会影响到其他ajax请求

可以在控制器当中这样写

Yii::app()->request->enableCsrfValidation = true;//开启csrf
Yii::app()->request->csrfTokenName = 'FORM_TOKEN';//表单名称
//以上两句的影响是 $form = $this->beginWidget('CActiveForm')的时候
//会生成一个隐藏的input名字是FORM_TOEKN(值就是csrftoken)
if($_POST) {
    try {
        Yii::app()->request->validateCsrfToken(null);
    } catch (Exception $e) {
        die('The token could not be verified.');
    }
}

资料参考:
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
http://www.crarun.com/article-7.html

YII使用命令行模式

入口文件:shell.php

run();

数据库配置文件console.php可以参考main.php

演示protected/commands/TestCommand.php


终端执行:/usr/bin/php -f /var/www/test/shell.php test 1 2
其中1是第一个参数可以在代码当中用$args[0]获取,2标示第二个参数可以用$args[1]获取;注意命令用小写调用

YII之yiic使用

1.D:\wamp\www\yii-1.1.15\framework\yiic webapp D:\wamp\www\demo 更多内容参考http://www.yiichina.com/guide/1/quickstart.first-app 2.遇到的问题有webapp前后有个空格 3.php需要添加到环境变量当中,注意路径!   生成目录列表:

yiic                   yiic 命令行脚本
  yiic.bat               Windows 下的 yiic 命令行脚本
  yiic.php               yiic 命令行 PHP 脚本
  commands/              包含自定义的 'yiic' 命令
     shell/              包含自定义的 'yiic shell' 命令
  components/            包含可重用的用户组件
     Controller.php      所有控制器类的基础类
     Identity.php        用来认证的 'Identity' 类
  config/                包含配置文件
     console.php         控制台应用配置
     main.php            Web 应用配置
     test.php            功能测试使用的配置
  controllers/           包含控制器的类文件
     SiteController.php  默认控制器的类文件
  data/                  包含示例数据库
     schema.mysql.sql    示例 MySQL 数据库
     schema.sqlite.sql   示例 SQLite 数据库
     testdrive.db        示例 SQLite 数据库文件
  extensions/            包含第三方扩展
  messages/              包含翻译过的消息
  models/                包含模型的类文件
     LoginForm.php       'login' 动作的表单模型
     ContactForm.php     'contact' 动作的表单模型
  runtime/               包含临时生成的文件
  tests/                 包含测试脚本
  views/                 包含控制器的视图和布局文件
     layouts/            包含布局视图文件
        main.php         所有视图的默认布局
        column1.php      使用单列页面使用的布局
        column2.php      使用双列的页面使用的布局
     site/               包含 'site' 控制器的视图文件
        pages/           包含 "静态" 页面
           about.php     "about" 页面的视图
        contact.php      'contact' 动作的视图
        error.php        'error' 动作的视图(显示外部错误)
        index.php        'index' 动作的视图
        login.php        'login' 动作的视图
     

备注:在linux下使用需要有执行权限!不同版本生成的目录可能不一样!