我有一個用戶訪問我的網站的場景。我打算使用iFrame在另一個域(不是我的控件)中顯示另一個站點的iFrame。現在這個網站會顯示一個登錄頁面。客戶將登錄到此頁面。如果登錄成功,我想禁用/模糊iFrame並在我的頁面上顯示一些字段。在我的網站上輸入數據後,我將啓用iframe並讓用戶繼續。與iFrames交互
我的問題是:我如何捕獲iFrame中的登錄成功事件?
側面問題:有沒有比使用iFrame更好的方法?
我有一個用戶訪問我的網站的場景。我打算使用iFrame在另一個域(不是我的控件)中顯示另一個站點的iFrame。現在這個網站會顯示一個登錄頁面。客戶將登錄到此頁面。如果登錄成功,我想禁用/模糊iFrame並在我的頁面上顯示一些字段。在我的網站上輸入數據後,我將啓用iframe並讓用戶繼續。與iFrames交互
我的問題是:我如何捕獲iFrame中的登錄成功事件?
側面問題:有沒有比使用iFrame更好的方法?
您想知道用戶何時在另一個網站上登錄並模仿登錄行爲。你描述的是對same-origin policy和實際security break ...
這可以適當地進行的,沒有安全的擔憂不斷上升,如果外部網站將共享登錄相關信息(例如,通過OAuth)。然後,您可以只彈出外部網站的登錄頁面。您的用戶將輸入他/她的憑據,您將可以正確訪問其登錄操作狀態。
假設外部應用程序是Facebook,你可以在this page上找到額外的信息和例子。 OAuth tutorial for beginners也可能有用。
希望我幫了忙!
我不是100%肯定,如果下面是你需要什麼,但你可以嘗試以下操作:
- 下面是XFO檢測的一個簡單的例子,沒有任何登錄檢測檢查,對幾個網站。
<* script src=」http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js」><* /script>
<* script>
var urls = [
'http://www.wikipedia.org/',
'http://ha.ckers.org/',
'http://www.google.com/',
'http://www.facebook.com/',
'https://github.com/',
'http://daringfireball.net/',
];
function detect() {
dojo.forEach(urls, function(url) {
var iframe = dojo.create(「iframe」, { src: url, id: url });
dojo.attr(iframe, 「style」, {display: ‘none’});
dojo.connect(iframe, 「onload」, function() {
dojo.destroy(iframe);
});
dojo.place(iframe, dojo.body());
setTimeout(function() {
var obj = dojo.byId(url);
if (obj) {
dojo.destroy(iframe);
var entry = dojo.create(「li」, null, dojo.body());
entry.innerHTML = 「Yes: 」 + url;
} else {
var entry = dojo.create(「li」, null, dojo.body());
entry.innerHTML = 「No: 」 + url;
}
}, 3000);
});
}
<* /script>
更多的方法和上面的訪問說明 - http://blog.whitehatsec.com/i-know-what-websites-you-are-logged-in-to-login-detection-via-csrf/
[相同的起源(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript )阻止這樣的事情。當「不在我的控制範圍內」時沒有解決方法; )。 – Teemu