2012-03-02 779 views
0

我有一個問題。通過IFrame傳遞用戶名和密碼

這可能嗎?
我需要把我們的其他網站的登錄頁面放入iframe中。並在登錄時您將看到一個圖表。

我需要的是,當我點擊超鏈接時,它會顯示iframe中的頁面,但自動填充和自動登錄帳戶,以便他們將看到的不是登錄頁面,而是其中的圖形。

有沒有辦法在iframe中傳遞用戶名和密碼,並觸發登錄按鈕或自動登錄?

可以在PHP或jQuery中做到這一點?

向所有人表示感謝,並提前致謝。

回答

1

你可以嘗試的第一個方法是在iframe中發送用戶名和密碼與GET方法。像src=yourscript.php?user=me&pass=secret一樣,您可以嘗試在另一端驗證用戶身份。

2

不要公開密碼,而要創建一個唯一的密鑰,您可以通過它們發送它們以在將顯示在iframe中的頁面上對其進行身份驗證。這假定兩個系統都知道用戶和唯一密鑰。

當你設置你可以設置它的來源的iframe,包括一些URL參數:

<iframe src="http://example.org/api?key=<?php echo $unique_key; ?>"> 

這將讓你的周圍,這樣做的JavaScript方法會扔了跨域問題。

+0

那麼我將如何觸發登錄頁面登錄它呢? – Bert 2012-03-02 12:50:11

+0

你不會因爲這是一個糟糕的主意。您需要創建另一種登錄機制來接受唯一丟棄驗證密鑰。傳遞密碼將其公開在iframes src屬性的HTML中。 – Treffynnon 2012-03-02 12:51:29

+0

我看病不如試試 – Bert 2012-03-02 12:53:06

2

Treffynnon答案中唯一需要注意的是,它要求您可以訪問這兩個系統,以創建一種可用於通信的「登錄代碼」Web服務。如果你只能訪問到第一個站點(要包含在iframe中的一個),我會做如下(請注意,這是不是安全的,因爲Treffynnon的答案):

  1. 負荷沒有iframe的頁面
  2. 使用ajax,請查詢您的服務器(通過SSL!)以獲取您需要提交給其他服務器的用戶名和密碼。
  3. 動態創建您的iframe,使用與其他服務器上的登錄表單基本相同的表單填充,並使用與其他表單相同的「方法」提交給相同的「操作」。然後動態提交它。這應該在客戶端上設置適當的登錄cookie,以便他們登錄。確保您在任何地方都使用SSL。
  4. 將iframe動態重定向到具有要查看的圖表的頁面。
  5. 消除任何保存安全登錄信息的javascript變量。

的潛在問題:

  • 有些登錄進程是非常挑剔的,也可以是不可能用這種方法來登錄。
  • 您正在顯着增加您網站上攻擊媒介的數量。例如:步驟2,查詢登錄憑據,假定您的安全性足以防止人們查詢他們不應訪問的數據。
  • 所有這些都假設最終用戶可以訪問登錄憑證,比如說他們有一個用戶名和密碼在兩個站點都可以使用。如果您有1個站點範圍的登錄信息用於爲最終用戶提供他們無法獲得的內容,那麼這會將您的登錄信息公開給您的所有用戶,您不應該這樣做。在這種情況下,你唯一的選擇就是在後端完成一些事情。如果您有權訪問這兩個網站的代碼,請使用Treffynnon的建議,否則您必須在後端訪問並下載圖表,並將其重新顯示給您的用戶。
相關問題