编程中的安全与类型处理指南
1. 命令行工具的空终止选项
不同的命令行工具在处理空终止选项时存在不一致性:
| 工具 | 空终止选项 |
| ---- | ---- |
| xargs 和 cpio | –null 或 -0 |
| tar | –null |
| find | -print0 |
| grep | –null 或 -Z |
| sort | -z 或 –zero-terminated |
建议所有程序都支持 “–null” 选项,以提高一致性。例如,移动大量文件(可能包含特殊名称)到目标目录可以使用以下命令:
find . -print0 | xargs --null mv --target-dir=$TARG
2. 受限 shell 的安全性问题
受限 shell 旨在限制用户执行的活动,强制用户仅运行一小部分程序。然而,它存在诸多问题:
- 配置困难 :正确配置受限 shell 非常困难。
- 可被绕过 :例如,一些受限 shell 启动时会以不受限模式运行某些文件(如 “.profile”),用户若能更改该文件,就能执行恶意代码。
- 程序逃逸 :若程序存在 “shell 逃逸” 功能,攻击者可借此绕过受限 shell;即便程序无此功能,多个程序结合 shell 功能也可能突破限制。
- PATH 问
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



