应用开发中的错误处理与网络聊天应用案例
1. 限制附带损害
在应用开发过程中,即使出现灾难性错误导致应用崩溃,也需要限制其附带损害。主要有两种关键方法:以非特权用户身份运行和使用 chroot() 监狱。
-
以非特权用户身份运行 :
- 不要以 root 或超级用户身份运行应用。因为以 root 身份运行的服务器进程若存在可利用漏洞,攻击者可能会获得 root 权限。
- 若确实需要 root 权限(如绑定低于 1024 的端口),在权限不再需要时立即放弃。
- 对于服务器应用,最好使用专门的非特权用户运行,这样可避免应用影响系统的其他部分。若多个服务器在同一用户下运行,它们可能会相互影响。
-
使用
chroot()监狱 :chroot()监狱可确保崩溃的进程不会损害其自身区域之外的文件。由于chroot()命令需要 root 或超级用户权限,为确保最大安全性,需结合权限放弃操作。
2. 优雅但不静默地失败
当应用失败时,要确保其优雅地失败,且不能静默失败,记录失败原因的信息非常重要。
- 优雅失败的含义 :应用应捕获致命错误并自行关闭,而不是由 Linux 关闭应用并转储核心。这样应用有机会通知与其连
超级会员免费看
订阅专栏 解锁全文
5万+

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



