我最近在 C 中实现了一个简单的网络服务器。但是,我遇到了一些安全问题。
目前,当我收到 GET 请求时,我会执行以下操作:
- 解析标题
- 如果标头有效,请检查我们是否有文件权限
- 如果我们有权限,请发送文件
- 如果我们没有权限,请发送
403 Forbidden
- 如果文件不存在,发送
404 Not Found
- 否则,发送
400 Bad Request
但是,由于网络服务器自己执行此操作,因此在为客户端提供服务时会使用其权限和特权。换句话说,这意味着(当前)我的网络服务器显示 a 的唯一方法403 Forbidden
是,即使启动网络服务器的用户也没有文件的读取权限。
显然,这是一个问题。
我的问题如下:是否可以统计group
或others
标记读/写权限而不是仅仅user
?我open()
目前用来检查权限 - 我必须使用其他东西吗?