2011-08-22 25 views
5

我想我的書籤要求用戶登錄。 這是想法....我創建一個用戶登錄的iframe,並顯示空調信息。 但我想從服務器獲取一些信息,例如,我想知道用戶是否已將此頁面添加到我的服務器。所以,我想做一個Ajax調用,但由於相同的原產地策略,我不能用ajax做。那麼,如何從iframe獲取信息?如何在小書籤中進行驗證?

的故事是這樣的:

用戶網頁 - >用戶點擊書籤 - >如果登錄 - >顯示的「加入收藏」按鈕 - >用戶點擊加入收藏按鈕,該URL被提交給服務器,重新加載服務器。

用戶網頁 - >用戶點擊書籤 - >如果沒有登錄 - >顯示登錄按鈕 - >登錄成功 - >做流量爲以前

用戶網頁 - >用戶點擊書籤 - >如果登錄 - >檢查網站是否已經添加到服務器上 - >沒有收藏按鈕

正如你所看到的,只有iframe存儲登錄用戶的信息。

+1

相同的原產地政策在iframes iirc中沒有影響。只需將一個iframe添加到父文檔。在bookmarklets的js-code裏面,將你想要的所有數據從父頁面添加到iframe,然後你可以隨心所欲地使用它,包括你自己的域名中的ajax。 – aero

回答

1

你在做什麼是不可能的,因爲它違反了origin inheritance rules。這樣想想吧。如果你可以從這個時尚的其他網站獲得信息,那麼你可以閱讀CSRF Tokens,或從他們的Gmail帳戶閱讀某人的電子郵件。

說到CSRF,大多數登錄只是一個簡單的帖子,用戶名/密碼。您在您的網站上構建一個簡單的<form>,與登錄所需的POST請求相同。使用JavaScript,您可以在窗體上調用.submit(),該窗體將瀏覽器重定向到其新鑑定的會話。事實上,這是一個POST based CSRF exploit works(儘管通常在CSRF攻擊中,您認爲瀏覽器已經通過身份驗證)。

當然這不適用於所有應用程序,如OpenID或Gmail。這是因爲這些服務通常包括隨機值和登錄請求。

相關問題