目前,我正在Django1.11项目中,我使用nginx的有计划的“https”部署我的应用程序。我想提交表单,但不希望重新提交相同的,所以我使用POST /重定向/ GET模式。一切工作正常,并在Mozilla和Chrome,即如预期的POST /重定向/ GET通话将呈现相应网页中,在重载和重新提交相同的形式,将呈现403次获得预期拒绝。只有当我测试在微软浏览器EDGE同样的看法,会出现问题。在调用POST / REDITECT / GET方法,它直接引发了我403 403的原因是“REASON_NO_REFERER”。微软的边界转发空HTTP,引用者同时使用POST /重定向/ GET模式。
添加<meta name="referrer" content="origin-when-cross-origin" />
在HTML模板<head>
,现在它的工作罚款边缘也。但尽管如此,不知道什么是错的边缘,如果我没有在头添加这个元标记。此外,不会造成任何的安全漏洞?
Django的解释了为什么引荐检查是必须的。
Suppose a user visits http://example.com/
# An active network attacker (man-in-the-middle, MITM) sends a
# POST form that targets https://example.com/detonate-bomb/ and
# submits it via JavaScript.
#
# The attacker will need to provide a CSRF cookie and token, but
# that's no problem for a MITM and the session-independent
# secret we're using. So the MITM can circumvent the CSRF
# protection. This is true for any HTTP connection, but anyone
# using HTTPS expects better! For this reason, for
# https://example.com/ we need additional protection that treats
# http://example.com/ as completely untrusted. Under HTTPS,
# Barth et al. found that the Referer header is missing for
# same-domain requests in only about 0.2% of cases or less, so we can use strict Referer checking.
所以,在这种情况下,确实这意味着在HTML中添加元是强制性养活XYZ-起源于HTTP,引用者?如果是,这是否会给中间人攻击任何安全漏洞为攻击者可能有HTTP,引用者也?
我在网络的概念,所以请纠正我,如果缺少了什么或者从我身边错差。
元引荐标签大多数浏览器工作在由用户定义的方式传递引荐信息。交通仍然是加密的,并使用HTTPS的所有好处留在原地,但现在你可以传递引用数据到所有的网站,即使是那些使用HTTP。
起源于何时跨来源:发送完整的URL为当目标具有相同的方案,主机和端口(即子域)的引荐不管它是HTTP或HTTPS,在发送起源,只有转诊信息的外部网站。
因此,基于这一点,我想你不会有任何安全相关的问题。
参考文献:
(1)The Meta Referrer Tag: An Advancement for SEO and the Internet
(2)SEO for HTTPS Sites: Should You Implement the Meta Referrer Tag?
有不同的引荐政策不同的算法。我们需要选择一种适合我们的要求。有某种可靠性或安全漏洞。但对我来说,我对HTTPS方案部署我的应用程序。此外,我要去我的相互连接起来其他应用程序,这也是对HTTPS方案。所以我要求“原点时交的起源”不会帮助我,如果我发布的数据,以我的另一个应用程序。这就是为什么“没有引用,当降级”是合适的。另外这个引荐政策是浏览器的默认策略。