2012-02-15 98 views
0

我在我的網站上使用Facebook註冊插件,但我在Firefox(10)和Safari(5)中遇到安全錯誤。Facebook註冊插件安全/ https錯誤

我在HTML的代碼:

<fb:registration fields="[{'name':'name'}, {'name':'email'}, {'name':'company', 'description':'company', 'type':'text'}]" redirect-uri="http://[url removed]/" width="318" height="360"></fb:registration> 

所以重定向-URI是HTTP。我插入JS SDK與Facebook提供的代碼:

(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "http://connect.facebook.net/" + language + "/all.js#xfbml=1&appId=107844832676140"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

一切都在Chrome和IE9正常工作,但我得到了Firefox和Safari安全警告。在Firefox中,我收到了以下錯誤消息:

「雖然此頁面已加密,但您輸入的信息將通過未加密的連接發送,並且很容易被第三方讀取。繼續發送這些信息?「

在Firefox和Safari中,我都可以按確定並繼續發佈表單。但是,我如何擺脫這個安全信息呢?我發佈的頁面是否需要使用https?

+0

我查了資料,但發現沒有直接回答:https://developers.facebook.com/docs/plugins/registration/advanced/ – 2012-02-16 12:04:52

回答

2

看起來像是http和https的問題。

我的猜測是,你的網頁是通過HTTPS,但在你的代碼加載在HTTP上的Facebook SDK,這不是一個好主意......

改變這一點:

js.src = "http://connect.facebook.net/" + language + "/all.js#xfbml=1&appId=107844832676140"; 

到這個:

js.src = document.location.protocol + "//connect.facebook.net/" + language + "/all.js#xfbml=1&appId=107844832676140"; 
+0

頁面是HTTP。也試過你的解決方案,但問題仍然存在。 – 2012-02-16 11:58:34

+0

當瀏覽器通過https加載一個頁面,但是至少有**一個通過http發送的請求時,會產生安全消息,它可以是來自圖像,腳本或樣式文件的任何內容。如果實際上你在https中沒有任何內容,那麼你不應該面對這個安全信息,因爲我猜你正在用https加載內容。 – 2012-02-16 12:07:22

1

開發人員抱怨在Firefox和safari等瀏覽器中收到安全警告。例如,Firefox提供如下安全警告 -

雖然此頁面已加密,但您輸入的信息將通過未加密的連接發送,並且可以被第三方輕鬆讀取。您確定要繼續發送此信息嗎?

用戶可以按確定,然後繼續張貼表單。但是,Web開發人員不希望用戶因爲此安全警告而避免註冊。

對於解決方案,請參考: http://blog.oursocion.com/2012/07/facebook-registration-plugin.html