本文概述
HTTP用于通过Internet进行通信, 因此用户, 信息提供者和应用程序开发人员应注意HTTP / 1.1中的安全性限制。本节没有为此处提到的问题提供确定的解决方案。它提供了一些减少安全风险的建议。
个人信息
在HTTP中, 客户端通常会占用大量个人信息, 例如:用户名, 电子邮件地址, 密码, 位置, 加密密钥等。我们应注意防止客户端的个人信息无意间通过HTTP协议到其他来源。
1.滥用服务器日志信息
这样, 用户的所有个人数据都应以加密形式存储在服务器上。
2.敏感信息的传递
HTTP无法规范传输的数据的内容。 HTTP不能具有任何先验方法来确定任何请求上下文中信息的任何特定部分的敏感性。
公开服务器的任何特定软件版本可能会使服务器计算机更容易受到包含安全漏洞的软件的攻击。
用作通过网络防火墙的门户的代理应特别注意标头信息的传输, 该信息用于标识防火墙后的主机。
3.在URI中编码敏感信息
链接的来源可能是私人信息, 因此强烈建议用户能够选择是否发送引用者的字段。
如果我们引用的页面是使用源协议传输的, 则客户端不应在HTTP请求中包括“引用者”字段。
4.与接受标头相关的隐私问题
接受请求标头可以向所有访问的服务器显示客户端信息。
基于文件和路径名的攻击
HTTP原始服务器的实现应谨慎限制文档, HTTP请求返回的文档仅是服务器管理员想要的文档。
例如, Microsoft Windows, UNIX和其他操作系统使用“-”作为路径组件, 该目录组件显示目录级别高于当前目录级别。在那种类型的系统上, HTTP服务器必须(如果可能的话)必须禁止Request-URI中的任何此类构造, 否则HTTP服务器不允许访问打算通过HTTP服务器访问的资源。
DNS欺骗
HTTP客户端严重依赖DNS(域名服务), 因此通常容易受到基于IP地址和DNS名称的故意误关联的安全攻击。因此, 客户端应谨慎假设IP地址和DNS名称关联的持续有效性。
如果HTTP的客户端缓存主机名查找的结果以提高性能, 则它们必须观察由DNS报告的TTL信息。更改以前访问的服务器的IP地址后, 如果HTTP客户端不遵守此规则, 则可能会被欺骗。
位置标头和欺骗
如果单个服务器支持多个组织, 并且任何一个组织都不相互信任, 则它必须检查在所述组织的控制下生成的响应中的Location值和Content-Location标头。这些组织用于确保他们确实试图使没有权限的资源无效。
身份验证凭证和空闲客户端
用户代理和现有的HTTP客户端通常会无限期保留身份验证信息。 HTTP / 1.1没有为服务器提供任何方法来指示客户端丢弃这些缓存的凭据。
为解决此问题, 我们鼓励使用空闲超时, 密码保护和其他方法来减少此问题固有的安全性问题。