公司之前做的一个基于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