YII 异常之伪装和捕获

公司之前做的一个基于YII的系统让别人去检测,结果各种有的没的挑毛病。

因为这个原因,考虑到系统的健壮性,需要对这些企图通过各种暴力破解的鸟蛋进行隔离。

实现流程思考:

为了不让小黑察觉,又不影响用户。考虑伪装系统原来的提示方式。然后如果限制的时间内,达到某个值。封ip(当然是n小时什么的不能访问啦)。

再研究系统默认异常处理机制。因为一个合格的框架这个最基本的处理浏览肯定是有滴。虽然平时有看源代码,但整体把握肯定是没有绝对到位的。不会不要紧。google下。

yii error handle 果然一堆。

配置如下:

'components'=>array(
		'errorHandler' => array(
            'errorAction' => 'errormsg/error', 
         ),)

伪装提示页面(这个简单研究下yii的源代码,猜到在哪处理):

Y(^_^)Y 直接复制yii的东西来用,一点都不用改:

framework1.1.10viewszh_cn 下的就是国际化的提示页面。咋就简单提取。

Controller操作:

function actionError() {
		$error = Yii::app ()->errorHandler->error;
		if ($error) {
			$error=Errorinfo::model()->record($error);
			if($error['code']=='500'){
				die("系统繁忙中!");
			}
			$this->renderPartial( 'error'.$error['code'], array (
					'data' => $error
			) );
		} else {
			js_alert ( "error page", "", url ( 'site/index' ) );
		}

	}

强化升级:

1. 考虑文件的读取,如 图片,脚本,样式文件等这些,会造成异常的值偏高。所以要根据相关的后缀进行过滤。当然,为了防止别人是在暴力查询控制器的函数。所以最后限制下目录前缀。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

发表评论

电子邮件地址不会被公开。 必填项已用*标注