我制作了我的第一个专用于单个用户的 Web 应用程序。
作为系统管理员,对我来说,在操作系统端而不是会话端锁定安全性更简单。
我想到了一个简单的解决方案:仅允许他的 mac 地址使用 80 端口。
这是一个好主意吗?
我应该关心哪些缺陷?
答案1
我想到了一个简单的解决方案:仅允许他的 mac 地址使用 80 端口。
怎么“简单”呢?在 OSI 模型中...
当你处理 TCP 端口号时,你就不再处理硬件地址了。因此,即使软件允许,混合使用两者也是非常不明智的。正如在对此答案的评论经过克里斯·麦基翁,除非两台主机在同一个网段上,您看到的任何 MAC 地址很可能都是最近的路由器的 MAC 地址无论如何,它根本不是最终用户的机器。
另外,请记住,即使您愿意接受两台机器必须位于同一网络段的限制,MAC 地址也很容易更改。如果最终用户出于某种原因获得了不同的网卡,则几乎肯定会有不同的 MAC 地址。当今许多 NIC 都具有软件可定义的 MAC 地址。当然,假设其他人使用用户的 PC;他们是否应该不受限制地访问该应用程序?即使这基本上是一种业余爱好,我也希望不是。
最后,我非常同意kafka 对这个问题的评论: 为什么不只需使用用户名/密码验证?
如果你不想在代码中自己处理身份验证,特别是如果你不需要根据凭证分离访问权限(尽管这仍然很有可能),那么只需通过以下方式将身份验证工作转移给 Web 服务器即可。.htaccess。
答案2
这是个很糟糕的主意。MAC 地址很容易更改。此外,网络过滤只是安全系统的一小部分。它的主要目的是将通信限制在有效流量范围内(防止接收伪造的数据包、来自/到某些网络的流量等)。
您应该在所有系统/应用程序堆栈级别提供安全性。