zhphp framework(十六) Appcontroller
2015-12-11 13:59
267 查看
<?php /** * Created by JetBrains PhpStorm. * User: 张华 * Date: 14-3-8 * Time: 下午12:21 * QQ: 746502560@qq.com * To change this template use File | Settings | File Templates. */ defined('IN_ZHPHP')?NULL:die('attempts to hack the system'); class AppController extends controller { protected function checkform($formhash){ if($this->xssFromActivt()){ $hash=$this->createFormHash(); if($formhash == $hash){ return true; } return false; }else{ return false; } } protected function createFormHash($referer=''){ if($referer == ''){ $router=engine::load('router'); $module=$router->getModule(); $control=$router->getControl(); $action=$router->getAction(); $module=empty($module)?null:$module.'/'; $strrchr=strrchr($_SERVER['REQUEST_URI'],'.html'); if($strrchr === false){ $url=HTTP_URL.$module.$control.'/'.$action; }else{ $url=HTTP_URL.$module.$control.'/'.$action.'.html'; } }else{ $url=$referer; } $key=$key=config::readConfig('session','key_token').substr($_SERVER['REQUEST_TIME'],0,-7); $hash=token::encrypt($url, $key); return $hash; } protected function xssFromActivt(){ $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL; $host = $_SERVER['HTTP_HOST']; if(substr($referer,7,strlen($host)) != $host){ return false; }else{ return true; } } }
相关文章推荐
- 年末重磅 | 12月Unity 2D新功能发布会现已开放报名!
- Android中TableLayout中的布局
- Android官方培训课程中文版(v0.9.4)
- java,android编程框架
- Android 笔记
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
- dapper.net for mysql
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- Android 知识点备忘
- Android develop tricks——整理自国外的一些Blog
- iOS---分段控件的点击事件
- iOS 图片取色器
- Appium_学习笔记
- [转]iOS:批量导入图片和视频到模拟器的相册
- Android开发者网址导航
- Gradle 第七讲 之 android插件的入门2 SourceSets
- iOS开发:Swift多线程GCD的使用
- iOS NSDecimalNumber详解
- iOS----轻松掌握AFN
- Android Studio 快捷键