做财务的都认一条老规矩:管账的不管钱,管钱的不碰账。两条线交叉的地方,最容易被人动手脚。网站后台其实一个道理,只是很多人舍不得给自己添麻烦。
常见的样子是一个超管账号管全部,人走了账号还留在名单里。前阵子帮一家公司看后台,用户列表五个账号,三个是同一个人的,另外两个是外包团队两年前留的,权限全给到了管理员。问现在谁还在用,答不上来。
权限上的漏洞,多半是被“方便”两个字让出去的。为了方便,编辑拿到了系统设置;为了方便,客服能看到全部客户手机号;为了方便,外协拿了个永久管理员。每一条单独看都有理由,合在一起,这个后台就没有边界了。
这活本该在开工前就定下来,实际却常常拖到网站开发干到中段才有人提起。原因是它改起来最贵——加个字段顶多算小改,权限一动,所有人的工作方式都得跟着挪。
怎么分,先按角色切。管人的超管留一个,负责建账号、发权限;内容编辑只管栏目里的文章和图片;客服只看和处理留言,看不见后台设置;数据岗只读不写,导出还要限次数。角色的名字可以自己起,关键是互不重叠。
再往下是粒度。同样叫“编辑”,能改自己栏目的和能改全站栏目的,风险差得远。同样一个留言模块,能看到姓名电话的和只能看留言内容的,也不该是同一档权限。把“能看”和“能改”分开,把改内容和改配置分开,粒度切到这一步,多数误操作和泄密就堵住了。
功能的坑好补,边界的口子难收。
几件具体的事,做了就不算白折腾。一人一号,不许共用,共用的账号出了事查不出是谁干的;离职当天停用,别等人走了半个月才想起来。敏感操作加二次验证,删栏目、批量导出、改支付配置这类动作,让操作人再输一遍密码或者短信确认。操作日志只准追加、不准删,谁在什么时候改了什么,留着比什么都强,这条也别给任何人开口子。
后台入口收一收。路径别用 admin,能加 IP 白名单就加,或者挂一层只给自己人知道的入口;数据库账号和网站账号分开,网页被人摸了,至少不能顺着一个账号把数据全端走。备份权限单独放,能删数据的账号不能同时有删备份的权限,否则一次误删两头空。外协账号定期限,写清楚到期时间,项目验收完自动失效,不靠人情记着删。
危险信号有几个,看到就得处理:管理员账号还叫 admin;多人共用一个号;密码写在便签上贴屏幕边;离职半年账号还挂在名单里。这四条里占两条,说明权限基本没管过。多数网站开发项目验收时只测功能、不测权限,问题就一直留在那儿,等哪天出事才被人翻出来。
权限这事,平时看不出好处,出事那天才知道值不值。它拦得住的大多是自己人手上的误操作和顺手牵羊,外面的黑客反倒少见——现实里的数据泄露,后一种占了大头。