我知道它違反了Same origin policy,這就是爲什麼它不可能通過簡單的ajax請求。我可以使用JSONP。但使用JSONP進行登錄聽起來並不安全(沒有帖子只能得到)。從HTTP通過AJAX調用HTTPS登錄
那麼是否有更安全的方式通過ajax實現登錄到https?
我知道它違反了Same origin policy,這就是爲什麼它不可能通過簡單的ajax請求。我可以使用JSONP。但使用JSONP進行登錄聽起來並不安全(沒有帖子只能得到)。從HTTP通過AJAX調用HTTPS登錄
那麼是否有更安全的方式通過ajax實現登錄到https?
它不僅違反了same origin policy,但由於您呼叫的頁面不安全,它可能會被幹擾並泄漏您嘗試保持安全的所有數據。
在整個過程中使用HTTPS。
更好的是,在用戶登錄時繼續使用HTTPS,否則您將擁有the Firesheep problem。
正如我們在下面的評論中所討論的,這是Facebook爲其註冊頁面所做的工作,儘管這種方法存在一些漏洞。儘管用戶看起來不安全(無鎖圖標),但實際的請求是通過HTTPS完成的。如果您控制了整個接收頁面,那麼通過GET執行JSONP請求的安全性就會降低。但是,中間人攻擊可能會在接收的頁面上修改負載,並將返回的憑據發送給攻擊者。
從好的一面來看,沒有人只是嗅探數據包就能獲得憑據:攻擊必須是相當有針對性的。在技術上,JSONP可以「返回」Cookie;你只需返回你想要設置的cookies的名稱 - 值對,並在接收頁面上設置一個函數來設置它們。
但是,除非瀏覽器以不同的方式處理<script>
,並且它可能應該能夠使用JSONP響應的響應頭以正常方式設置cookie。
是的,從等式中取出HTTP。如果你在'HTTP'內執行'GET'請求,它就是明文。否則,請在服務器上重新指定,以在登錄頁面上強制將'HTTP'強制爲'HTTPS'。 – Anders