|
有人把“网站后台”当成一个筐,下面什么都往里装。个操前阵子面试一个刚毕业的作不作男生,我问他:“下面哪个操作不属于网站后台的属于操作?”他愣了两秒,反问:“老师,网站您是后台指服务器后台、CMS后台,下面还是个操数据库后台?”这个问题本身就暴露了常见误区——很多人把“后台”等同于“管理界面”,甚至等同于“任何看不见的作不作网页操作”。 直接给答案:用户在前台点击“提交订单”按钮,属于这个动作本身不属于网站后台的网站操作。注意,后台我说的下面是“点击”这个动作,不是个操指订单数据后续被后台处理。很多人会混淆“操作发生的作不作位置”和“操作产生的影响”。 后台操作到底指什么 我习惯把网站后台操作分成三类。第一类是内容管理,比如编辑在CMS里发布一篇文章、修改首页轮播图、给商品改价格。第二类是系统配置,比如管理员在后台开关用户注册功能、设置邮件服务器参数、调整缓存策略。第三类是数据维护,比如运营导出用户列表、客服查看订单日志、技术员清理过期session。这三类的共同点是:操作者需要登录一个专门的管理入口,通常有权限验证,界面里全是表格、表单和按钮,普通访客看不到。 而“用户在前台点击提交订单”发生在浏览器端,用户看到的是商品页、购物车和结算按钮。这个点击触发了HTTP请求,请求被送到服务器,服务器再调用后台逻辑去写数据库、扣库存、发通知。但用户本身没有进入后台,也没有操作后台的任何功能。就像你去银行柜台存钱,柜员在电脑上敲键盘是后台操作,你填存款单不是。 一个容易搞混的案例 去年帮一个电商团队做代码审查,他们的运营小姑娘抱怨:“我每天都在后台操作啊,比如点‘发货’按钮。”我让她演示。她打开订单列表,勾选一个订单,点“批量发货”。这确实是后台操作。但另一个场景:她在前台用自己账号下了一单测试,然后去后台把这个测试订单删掉。删订单是后台操作,下测试单不是。她混淆的是“她作为用户的行为”和“她作为管理员的行为”。同一个人,换个入口,操作性质就变了。 还有人问:“那网站前台显示‘库存不足’这个提示,算后台操作吗?”不算。那是后台逻辑运行的结果,不是操作。操作需要有人主动发起、有明确的指令。系统自动执行的定时任务——比如每天凌晨备份数据库——严格说也不算“操作”,而是“作业”。后台操作强调人的介入。 为什么这个问题值得较真 分清后台操作,直接关系到权限设计和安全审计。很多网站把“用户能做的事”和“管理员能做的事”混在一个权限体系里,结果普通用户通过改URL参数就能访问后台接口。我见过一个论坛,用户在前台发帖时,请求里带了一个is_admin=1的参数,后端没校验,直接让普通用户把帖子置顶了。这就是没搞清“前台请求”和“后台操作”的边界。 另一个实际影响是日志分析。安全团队看访问日志,如果分不清哪些是正常前台行为、哪些是后台操作,就没办法定位异常。比如一个IP在十分钟内调了200次/admin/user/delete,这明显是后台操作被攻击。但如果它调的是/product/detail,那可能只是爬虫。 回到标题那个问题。如果你面前有四个选项:A. 在CMS里发布新文章;B. 在后台修改用户密码;C. 在前台点击“加入购物车”;D. 在后台删除一条评论。答案选C。别小看这个区分,它决定了你写代码时把校验逻辑放在哪一层,也决定了你排查故障时先看哪个日志文件。 最后说个真事。有个朋友做运维,半夜被告警吵醒,说网站后台有异常登录。他查了半天,发现是老板用手机浏览器登录后台改了个banner图。老板的操作是后台操作,但触发告警的是“异地登录”规则。如果当初把“后台操作”的定义写清楚——哪些IP、哪些时间段、哪些行为算敏感——就不会有这场虚惊。定义不清,工具再好也白搭。 |