哪里能输入,哪里就可能出事;每一个参数,都是一扇没关严的窗
原创
奇遇先生
奇遇先生
守夜人的记事薄
2026年10月27日 10:38
河北
去阅读
第六扇,XML / JSON。一段精心构造的数据,就可能让服务器去读一个它不该读的文件。
六扇窗,一扇比一扇隐蔽。
四
但最骗人的,是那扇\"虚掩\"的窗。
前端校验:手机号要 11 位、密码要 8 位、不能为空……
你在浏览器里试,怎么都过不去,于是你以为——\"这窗关得挺严\"。
可你忘了:这道校验,跑在你自己的电脑上。
而你,完全控制你自己的电脑。
抓个包,改个参数,那道\"关着的窗\",连响都不响一下就开了。
前端校验,防的是\"手滑的人\",防不住\"有心的人\"。
真正关得住的窗,只有一种:服务器自己把关。
因为服务器,不在你手里。
五
而最危险的窗,是那些没人觉得它是窗的地方。
- 一个
X-Forwarded-For,被系统当成\"你的来路\"; - 一个
role=user,被系统当成\"你的身份\"; - 一个上传文件名,被系统当成\"文件类型\";
- 一个
?debug=1,页面上没有,接口里却认。
它们之所以危险,不是因为开得大,而是因为——没人觉得它们是窗。
六
那怎么关窗?
不是把窗堵死,而是让\"风\"和\"墙\"分清楚。
- 查数据库,用参数化 / 预编译,不拼字符串;
- 输出到页面,按上下文编码;
- 打开文件,白名单 + 路径规范化;
- 发起请求,禁止内网地址;
- 执行命令,别调用 shell;
- 上传文件,白名单 + 重命名 + 禁止解析;
- 判断权限,服务端对每一次请求都校验。
同一扇窗,攻击者想的是\"怎么进\",防御者想的是\"怎么关\"。
而真正的高手,两件事都懂。
结尾
只要有一个地方能输入,就有一个地方能出错。
而最危险的窗,从来不是那扇明晃晃开着的——
是那扇你以为,已经关好了的。
今晚睡前,不妨也去看看你的\"窗\"。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论