我想保護我的網站免受cross-site request forgery的侵害。我試圖按照these recommendations,通過發送會話特定的令牌以及所有需要保護的請求。通過跨域JavaScript呼叫預防CSRF
問題在於我有一些請求被設計爲由不同域上的第三方網站調用。他們大多使用JSONP:他們使用<script>
標籤向我們的服務器發出請求,響應是JavaScript代碼,它在頁面上調用一個函數。
我的問題是,如何在這些請求中傳遞令牌?看來第三方網站需要知道令牌。我可以提供另一個將令牌作爲JSON返回的請求,但不可信站點可以發出相同的請求,獲取令牌並用它來僞造對服務器的請求。
有沒有更好的方法來做到這一點?
當他們請求JS時是否實際執行了任何操作?有什麼理由*你需要保護腳本? – sdleihssirhc 2011-04-01 22:24:00
是的,一些腳本執行的操作我不希望未經授權的站點能夠執行。 – 2011-04-01 22:58:42
我的理解是JSONP基本上是通過GET請求來操作的,但是防止CSRF的第一步就是隻使用POST。 – sdleihssirhc 2011-04-01 23:03:05