我試圖找出是否有防止CSRF嵌入式客戶的網站一個JavaScript控件的好方法。如何可靠地保護公共JSONP請求?
這個小部件將使最終用戶能夠通過JSONP向我們客戶的賬戶發送一個請求給我們(非公共)API的PHP服務器。
到目前爲止,我還沒有想出一個絕對的方法來確保所有請求都來自我們客戶的網站。有些想法我有:在服務器端生成並與每個後續JSONP請求一起(不知道如何驗證,雖然初始請求,因爲第一個令牌將在JS和任何人是可讀的回傳
- 令牌可要求「下一個」令牌)
- 檢查Referer標頭(不可靠的,是可以被欺騙或者根本就沒有通過瀏覽器傳遞)
- 使用SSL(當然會幫助,但沒有解決CSRF的問題)
這是在所有可能的?我已經遇到Fotomoto's widget這似乎讓同一類型的,我們正在尋找的功能,但我不知道他們是如何做的。