Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 防止/检测通过HTTP意外发送的客户端机密泄漏?_Apache_Security_Https_Monitoring - Fatal编程技术网

Apache 防止/检测通过HTTP意外发送的客户端机密泄漏?

Apache 防止/检测通过HTTP意外发送的客户端机密泄漏?,apache,security,https,monitoring,Apache,Security,Https,Monitoring,假设我有一个网站,叫做www.yodyne.com,既有“不安全”又有“安全”的内容: 不安全的内容不包含任何秘密,任何网站用户都可以通过HTTP进行访问 安全内容包含客户机密,只能由经过身份验证的授权用户通过HTTPS访问。在访问安全内容时,web客户端既可以从网站接收机密,也可以向网站发送机密 让我们进一步说一下,www.yoyodyne.com由Apache提供服务,我试图通过为包含安全内容的位置断言SSLRequireSSL指令来确保访问安全性(在两个方向) 最后,让我们假设web客

假设我有一个网站,叫做
www.yodyne.com
,既有“不安全”又有“安全”的内容:

  • 不安全的内容不包含任何秘密,任何网站用户都可以通过HTTP进行访问
  • 安全内容包含客户机密,只能由经过身份验证的授权用户通过HTTPS访问。在访问安全内容时,web客户端既可以从网站接收机密,也可以向网站发送机密
让我们进一步说一下,
www.yoyodyne.com
由Apache提供服务,我试图通过为包含安全内容的位置断言
SSLRequireSSL
指令来确保访问安全性(在两个方向)

最后,让我们假设web客户机通过HTTP而不是HTTPS发送包含客户机密的请求,因为它不知何故(见下文)获得了一个URL,其路径名组件引用了安全内容,但其方案(协议)组件错误地设置为
HTTP
,而不是
HTTPS

问题1:假设Apache服务器同时监听
www.yoyodyne.com
的IP地址的端口80和443(以便能够为这两个不安全的端口提供服务) 和安全的内容),难道客户的秘密不会被泄露吗 尽管
SSLRequireSSL
指令最终导致请求被拒绝

问题2:如果我们假设客户总是有机会收到 使用上面描述的坏URL,如果我被限制使用单个域名/IP,有没有办法防止这种泄漏 网站地址?(显然,如果我只提供安全的服务,我可以避免这个问题 比如说,
secure.yodyne.com
的内容,它解析为一个不同于
www.yodyne.com
的IP地址,并且没有人在端口80上收听。但是如果
www.yodyne.com
的所有者很便宜,不想支付第二个IP地址和/或出于美观考虑的对象,我会坚持使用c不受训练。)

--

现在,在
www.yodyne.com
中,至少有两种方式 web客户端可能会获取上述类型的错误URL:

  • 网站本身代码中的一个bug导致它嵌入链接 在它所服务的页面中
  • 多个“合作伙伴”网站中的任何一个,每个网站都进行身份验证 用户代表
    www.yodyne.com
    ,通过iframe提供链接
这显然是软件开发人员和维护人员的责任 所有这些网站,以确保他们写没有这样的坏链接。但正如 显然,没有任何保证。(虽然通过实施良好的编码标准和QA实践,我可能对
www.yoyodyne.com
的行为有一定程度的把握,但我无法有效控制合作网站的开发者如何运营他们的店铺。)

因此:

问题3:假设(如上)我没有单独的
secure.yoyodyne.com
站点(以完全防止任何此类错误请求通过 HTTP),我可以部署的最简单、最有效的通知机制是什么 在收到如此糟糕的请求后,请尽快通知
www.yoyodyne.com
管理员 是什么做的?(在我脑海里,我想象着像纳吉奥斯一样的东西
监视服务器日志并在它看到如此糟糕的访问时发送警报,但很可能有一种更简单的方法我没有想到。)

这些机密信息在哪里?在URL、POST数据或返回的页面中?在与此问题相关的情况下,URL的查询组件或POST数据。在我所设计的场景中,SSLRequireSSL应该(我很确定)防止在返回的页面中暴露任何秘密——因为它们不会被返回。那么防止这种情况的唯一方法是关闭端口80。