我需要從Site B
得到一些數據Site A
的服務器端跨域請求。爲了使請求Site B
檢索數據,存在與需要存在的Site B
的域相關的cookie。我認爲我需要在JavaScript中使用JSONP來做到這一點?如何使心不是僞造
我的想法是使用JavaScript向B
發出請求,然後捕獲結果並在A
的域中將其粘貼到cookie上,以便後續請求A
將攜帶返回數據的cookie(它並不重要向A
發送兩個請求,以獲取信息到A
的服務器端)。這將工作得很好,除非它完全可以破解。
數據本身並不是祕密,但我需要防止請求僞造或Site A
上的人員手動調用JSONP回調函數,或者手動設置A
cookie與被盜或僞造的數據。另外,還有沒有其他的黑客攻擊漏洞?這也需要預防!
我能想到這樣做的唯一方法是:
Site A
產生會話隨機令牌並將其存儲。然後它將此令牌附加到JSONP請求的查詢字符串Site B
。然後Site B
響應,但使用數字簽名將通常的數據與令牌一起加密。然後Site A
將此值粘貼在A
的cookie中。在A
的下一個請求中,A
的服務器端可以捕獲cookie,獲取值,解密,檢查令牌以及它是否與會話中的值匹配,相信其餘數據。
這聽起來合理嗎?有更容易的方法嗎?我的目標是在A
的最後減少複雜性。
感謝
你是否在控制這兩個網站?即你可以在兩個域中進行代碼更改嗎? – 2011-04-14 07:59:22
聽起來像你剛剛重新創建公鑰密碼術!看到這裏:http://en.wikipedia.org/wiki/Public-key_cryptography#A_postal_analogy – bdares 2011-04-14 08:00:45
@bdares不,我沒有,因爲這仍然不能防止僞造。什麼阻止我偷別人加密repsonse和自己使用它? – 2011-04-14 08:04:40