最近,我把网站后台登录地址变更了,后来,在日志中发现,还是有不明ip访问到了该页,甚是不解。我找到其中进入的一个页面,发现如下一个请求:
http://www.aaa.com/category/%E6%9C%AA%E5%88%86%E7%B1%BB/
后面的action字符经url解码,是“未分类”!我打开了category的控制器,
下面是控制器中的一段代码:
before_filter :require_admin
上面的require_admin用来进行身份验证,如果验证失败,系统将跳转到登陆页。
于是,问题产生了------这个调整会暴露我们不想让用户知道的秘密地址,比如后台管理地址!
在不加only的情况下,用户只要猜到了controller,比如category,然后他在地址栏随便输入形如“http://www.aaa.com/category/askdjflkasdjfksd”,系统就会根据前置过滤器验证。
如果加了only,那么,用户猜到了category,还要去猜action,只有都猜对了,系统才会进行身份验证;猜错了,要么跑到其他的过滤器,要么跳转到404错误页面。
before_filter :require_admin, :only => [:index, :add, :edit, :del]