我们的托pipe环境决定了通过特定子域的所有安全stream量音乐旅行。
我们正在使用的.NET CMS Umbraco,据我所知,没有任何function“分配”一个特定的页面到一个子域。
该场景是:
例如
请求等于/ page2 /页面
301redirect到https:// secure。{http_host} / {request}
随后的请求必须被忽略(为了避免循环)
https:// secure.domain.com/page =>无更改,保持不变
https:// domain.com/page =>插入子域,https://secure.domain.com/page
在我看来,逻辑是:
INPUT =完整URL = http://www.domain.com/page
如果input包含HTTPS然后检查完整的URL,它是否包含“安全”? 如果是,什么也不做,如果没有添加“安全”
–
8月19日更新
考虑到这一点,我拼凑出了两条正确的方向:
这是我build议的:
强制某些stream量进入安全域的一个规则是:
<rule name="Force 'Umbraco' to secure" stopProcessing="true"> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_URI}" pattern="^/umbraco/(.+)$" ignoreCase="true" /> <add input="{HTTP_HOST}" negate="true" pattern="^secure\.(.+)$" /> </conditions> <action type="Redirect" url="https://secure.{HTTP_HOST}/{R:0}" redirectType="Permanent" /> </rule>
另一个规则,然后删除安全域,期望在安全域上的stream量。
<rule name="Remove secure, expect for Umbraco" stopProcessing="true"> <match url="(.*)" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^secure\.(.+)$" /> <add input="{REQUEST_URI}" negate="true" pattern="^/umbraco/(.+)$" ignoreCase="true" /> </conditions> <!-- Set Domain to match environment --> <action type="Redirect" url="http://staging.domain.com/{R:0}" appendQueryString="true" redirectType="Permanent" /> </rule>
这适用于单个目录或文件组,但是我无法将其他逻辑添加到这两个规则中。 例如,你可能有3个需要安全的文件夹,我尝试添加这些文件作为'取消logging',但是根本没有发生redirect。
嗯! 大号
虽然有用,但是您提出的redirect方法并没有提供与将httpsurl放在页面上的正确位置相同的安全优势。
如果用户通过HTTP提交请求并收到redirect响应,则他们提交的任何数据将以明文方式前往您的站点。 您只能获得您网站发回给用户的信息的保护。 这比没有好,但是你需要小心。
例如,如果您的http页面的angular落有一个login表单,并且有一个http表单目标,那么无论您如何回复,用户都将以明文forms向您传递login信息。 另一方面,如果您的http页面有一个到httplogin页面的链接,并且您将其redirect到https页面,该页面会使用https表单目标URL来呈现表单,那么这将更安全。
你甚至可以为https://domain.com/page提供redirect服务吗? (而不是http)。 如果你能回应,那么你究竟有什么限制?