2010-11-10 91 views
1

我有一個受CSRF標記保護的表單。我不知道CSRF令牌的所有細節,但我聽說他們很有必要保證表單安全。當表單提交得太晚時,表單會提供錯誤,所以CSRF令牌似乎按預期工作。保護表單使用ajax提交:有或沒有csrf標記

在另一方面,當我提交表單與AJAX,我怎麼能驗證表單以同樣的方式我驗證範式?我不認爲我會有一個表單對象來驗證。

  • 使用ajax會有風險嗎?
  • 當我接受ajax調用時,如何驗證它與驗證正常表單的方式相同?
  • 我想通過與請求(如API密鑰),以證明該呼叫正從我的應用程序做了重點,但我怎能從肉眼此項?

回答

1

使用ajax會有風險嗎?

不是真的比任何其他請求到服務器更多的風險。

當我接受ajax調用時,如何驗證它與驗證正常表單一樣?

我不知道,你現在如何驗證表格? :)

你可能會想分享在服務器端的代碼。創建一個通用的方法/函數/無論處理表單,給定鍵/值對。唯一與AJAX不同的是,鍵/值對是如何發送到服務器的,以及格式化的響應是什麼。從這些細節中隔離驗證代碼,你可以從兩個地方調用它。

顯然,AJAX代碼應該令牌發送CSRF了。

我以爲通過一個密鑰與請求(如API密鑰)來證明該呼叫是從我的應用程序,但我怎麼能保持這個從肉眼看不出來?

這將是毫無意義的。 JavaScript是以純文本形式發送的,所以任何知道JavaScript的人都可以提取密鑰。