我有一個混合我網站的HTTP/HTTPS部分的問題,這有點難以解釋。基本上,該網站的結構使得:檢查安全Cookie並將HTTPS模式中的非HTTPS父級重定向到
- 首頁和公共內容頁面通過HTTP發送
- 需要授權的所有頁面通過HTTPS
我加入了「記住發送「功能發送給會話密鑰的會話密鑰在安全 cookie中發送給用戶。這對於網站的授權區域(HTTPS)非常有效 - 我可以刪除用戶的PHP會話,並且當我再次訪問這些授權頁面時,它將通過安全會話密鑰cookie重新創建。
我有一個登錄按鈕在網站上發送未加密的網頁。此登錄按鈕啓動一個模式窗口,此模式窗口的內容通過HTTPS傳輸。安全會話密鑰cookie在該模式窗口的請求中發送,因爲它通過安全連接。 如果檢測到此會話密鑰cookie,則需要關閉模式窗口並將父頁面重定向到站點的授權部分。
// this script running on https://somewhere.com/account/ in an iframe
// whose parent is http://somewhere.com/ (non-HTTPS)
<?php if ($already_authorized): ?>
<script type="text/javascript">
$(document).ready(function redirectParent() {
parent.jQuery.fancybox.close();
parent.window.location.href = 'https://somewhere.com/account/';
});
</script>
<?php endif ?>
我正在與跨域腳本預防,但問題,因爲從https://somewhere.com/account/
模態窗口加載嘗試它的父窗口上執行JS功能,http://somewhere.com
。
所以,我在簡短形式的兩難境地:
- 不安全頁面包含指向一個模式登錄窗口,它通過HTTPS加載
- 模態登錄窗口可以檢查會話密鑰的cookie,因爲它是通過安全連接發送
- 模態登錄窗口無法告訴其父母關閉JS,但是,因爲它是通過不同的協議加載的
- 模態登錄窗口無法加載通過不安全的連接。這會讓JS訪問父級,但是安全cookie將不可用。
如果我的問題有足夠的意義,我想知道:有沒有辦法解決這個令人沮喪的問題?或者我只是想通過HTTPS加載整個站點(包括公共和私有部分)?
你可以告訴父母關閉窗口。可以調用回調函數。父母將具有關閉模式的功能,並且您將在模態窗口內傳遞迴調。最後,模態會調用父母的功能。 – 2011-06-16 21:57:40