HTTP - 安全性

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

个人信息泄漏

HTTP客户端通常会知道大量的个人信息,例如用户的姓名,位置,邮件地址,密码,加密密钥等.因此,您应该非常小心,以防止通过HTTP协议无意中将此信息泄漏给其他来源.

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

  • 显示服务器的特定软件版本可能会使服务器机器更容易受到已知包含安全漏洞的软件的攻击.

  • 通过网络防火墙充当门户网站的代理应该采取特殊预防措施,以识别标识火灾背后主机的标头信息的传输墙壁.

  • "发件人"字段中发送的信息可能与用户的隐私权益或其网站的安全政策相冲突,因此不应传输没有用户能够禁用,启用和修改字段的内容.

  • 客户端不应包含Referer头字段(非安全) )HTTP请求,如果引用页面是使用安全协议传输的.

  • 使用HTTP协议的服务的作者不应使用基于GET的表单进行提交敏感数据,因为它会导致数据在Request-URI中编码.

基于文件和路径名的攻击

该文档应仅限于HTTP请求返回的文档,只能是服务器管理员预期的文档.

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

DNS欺骗

使用HTTP的客户端严重依赖于域名服务,因此基于IP地址和DNS名称的故意错误关联,因此通常容易受到安全攻击.因此,客户需要谨慎地假设IP号/DNS名称关联的持续有效性.

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

位置标头和欺骗

如果单个服务器支持多个不相互信任的组织,然后它必须检查在所述组织控制下生成的响应中的位置和内容位置标头的值,以确保它们不会尝试使资源无效他们没有权限.

身份验证凭据

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

这个问题的部分内容有很多方法. ,因此建议在屏幕保护程序,空闲超时和其他方法中使用密码保护,以减轻此问题中固有的安全问题.

代理和缓存

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

代理运营商应该保护代理运行的系统,如它们将保护包含或传输敏感信息的任何系统.

缓存代理提供了额外的潜在漏洞,因为缓存内容代表了恶意利用的有吸引力的目标.因此,缓存内容应作为敏感信息进行保护.