📜  HTTP-安全

📅  最后修改于: 2020-12-14 05:23:10             🧑  作者: Mango


HTTP用于Internet上的通信,因此应用程序开发人员,信息提供者和用户应注意HTTP / 1.1中的安全限制。该讨论不包括针对此处提到的问题的最终解决方案,但确实提出了一些降低安全风险的建议。

个人信息泄漏

HTTP客户端通常不了解大量个人信息,例如用户名,位置,邮件地址,密码,加密密钥等。因此,您应该非常小心,以防止此信息通过HTTP协议意外泄漏给其他来源。

  • 所有机密信息应以加密形式存储在服务器上。

  • 揭示服务器的特定软件版本可能使服务器计算机更容易受到针对已知包含安全漏洞的软件的攻击。

  • 通过网络防火墙充当门户的代理应特别注意标头信息的传输,以识别防火墙后面的主机。

  • 在“发件人”字段中发送的信息可能与用户的隐私权或他们站点的安全策略冲突,因此,在用户不能禁用,启用和修改该字段的内容之前,不应传输该信息。

  • 如果引用页面是通过安全协议传输的,则客户端不应在(非安全)HTTP请求中包含“引用者”标头字段。

  • 使用HTTP协议的服务的作者不应使用基于GET的形式提交敏感数据,因为它将导致数据被编码在Request-URI中。

基于文件和路径名的攻击

该文档应仅限于HTTP请求返回的文档,只能是服务器管理员想要的文档。

例如,UNIX,Microsoft Windows和其他操作系统使用“ ..”作为路径组件来指示当前目录之上的目录级别。在这样的系统上,HTTP服务器必须在Request-URI中禁止任何这样的构造,如果它否则将允许访问那些打算通过HTTP服务器访问的资源之外的资源。

DNS欺骗

使用HTTP的客户端严重依赖域名服务,因此通常会基于故意的IP地址和DNS名称误关联而遭受安全攻击。因此,在假设IP地址/ DNS名称关联的持续有效性方面,客户需要谨慎。

如果HTTP客户端缓存主机名查找的结果以提高性能,则它们必须观察DNS报告的TTL信息。如果HTTP客户端不遵守此规则,则当先前访问的服务器的IP地址更改时,它们可能被欺骗。

位置标头和欺骗

如果单个服务器支持多个彼此不信任的组织,则它必须检查在所述组织的控制下生成的响应中的Location和Content Location标头的值,以确保它们不会尝试使资源失效。他们没有权限。

认证凭证

现有的HTTP客户端和用户代理通常会无限期地保留身份验证信息。 HTTP / 1.1没有为服务器提供一种方法来指示客户端丢弃这些缓存的凭据,这是很大的安全风险。

此问题的各个方面有很多解决方法,因此建议在屏幕保护程序,空闲超时和其他缓解此问题固有安全性的方法中使用密码保护。

代理和缓存

HTTP代理是中间人,并且代表了中间人攻击的机会。代理可以访问与安全相关的信息,有关单个用户和组织的个人信息以及属于用户和内容提供者的专有信息。

代理运算符应保护运行代理的系统,因为它们将保护包含或传输敏感信息的任何系统。

缓存代理提供了其他潜在的漏洞,因为缓存的内容代表了诱人的恶意利用目标。因此,应将缓存内容作为敏感信息进行保护。