别让一段小代码毁了整个办公系统
在公司里,开发人员写代码时图快图省事,随手从网上复制一段脚本塞进系统,可能当时觉得没什么,但几个月后系统突然被攻破,数据全丢,追查下来竟是因为那段未经审查的代码。
输入验证不能偷懒
用户能输的地方就是风险入口。比如登录框,有人输入的不是密码,而是一串恶意指令。如果后台不做过滤,就可能执行危险操作。常见的做法是对所有输入做清洗:
<?php
$username = htmlspecialchars($_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
?>
哪怕只是内部系统,也不能假设“用户都是自己人”就跳过这步。
别硬编码密码和密钥
有些程序员习惯把数据库密码直接写在配置文件里,甚至提交到公司内网的Git仓库。一旦有人离职或仓库权限设置出错,等于把大门钥匙挂在门口。正确的做法是使用环境变量或专门的密钥管理服务。
第三方库要查清楚来路
项目里用个 npm install 或 pip install 很方便,但你装的包未必干净。曾有案例,一个流行的小工具被植入挖矿代码,只要一安装就开始消耗服务器资源。建议只用官方源,定期检查依赖是否有已知漏洞,可以用 npm audit 或 snyk 这类工具扫描。
日志别记录敏感信息
调试时顺手把用户请求全打到日志里,包括身份证号、银行卡号,等出了事才发现日志文件早就被人下载走了。日志的作用是排查问题,不是存数据。涉及敏感字段,要么脱敏,要么干脆不记。
最小权限原则要落实
写个脚本跑定时任务,很多人图省事直接用 root 权限运行。其实它只需要读一个文件夹,完全可以用普通账户。服务器上每个进程都该像员工一样:只给它完成工作所需的最低权限。
代码上线前得走一遍安全检查
很多团队赶版本,代码写完测试通过就直接上线。建议加一道简单流程:用静态扫描工具(如 SonarQube)扫一遍,重点看有没有 SQL 注入、硬编码密钥、不安全的函数调用。花十分钟,可能避免一场大事故。