公司之前做的一个基于YII的系统让别人去检测,结果各种有的没的挑毛病。
因为这个原因,考虑到系统的健壮性,需要对这些企图通过各种暴力破解的鸟蛋进行隔离。
实现流程思考:
为了不让小黑察觉,又不影响用户。考虑伪装系统原来的提示方式。然后如果限制的时间内,达到某个值。封ip(当然是n小时什么的不能访问啦)。
再研究系统默认异常处理机制。因为一个合格的框架这个最基本的处理浏览肯定是有滴。虽然平时有看源代码,但整体把握肯定是没有绝对到位的。不会不要紧。google下。
yii error handle 果然一堆。
配置如下:
2 | 'errorHandler' => array ( |
3 | 'errorAction' => 'errormsg/error' , |
伪装提示页面(这个简单研究下yii的源代码,猜到在哪处理):
Y(^_^)Y 直接复制yii的东西来用,一点都不用改:
framework1.1.10viewszh_cn 下的就是国际化的提示页面。咋就简单提取。
Controller操作:
01 | function actionError() { |
02 | $error = Yii::app ()->errorHandler->error; |
04 | $error =Errorinfo::model()->record( $error ); |
05 | if ( $error [ 'code' ]== '500' ){ |
08 | $this ->renderPartial( 'error' . $error [ 'code' ], array ( |
12 | js_alert ( "error page" , "" , url ( 'site/index' ) ); |
强化升级:
1. 考虑文件的读取,如 图片,脚本,样式文件等这些,会造成异常的值偏高。所以要根据相关的后缀进行过滤。当然,为了防止别人是在暴力查询控制器的函数。所以最后限制下目录前缀。
转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827