Shell脚本安全编码规范
发布时间:2026-04-20 18:19       
一、输入验证:永远不信任用户输入,使用read -r避免反斜杠转义,验证文件路径防止路径遍历,检查变量是否为空避免命令注入,使用引号包裹变量防止分词。二、权限控制:脚本设置最小必要权限chmod 700,敏感操作前检查当前用户是否为root,使用sudo执行特权操作而非全程root,临时文件使用mktemp创建避免固定路径竞争,设置umask 077限制默认权限。三、密码和密钥管理:不在脚本中硬编码密码,使用环境变量传递敏感信息,使用配置文件并设置权限400,利用vault或密码管理工具获取密钥,日志中不输出敏感信息。四、错误处理:set -e遇到错误立即退出,set -u使用未定义变量时报错,set -o pipefail管道中任何命令失败则整体失败,trap捕获信号执行清理操作。