2013-07-31 78 views
1

XSS/XSRF攻擊我有遵循一個基本模式的一些Ajax請求:避免與靜態參數

function(visitorId, sessionId, ...parameters more specific to method call..) 

訪問者和會話ID是隨機生成的服務器端。訪問者和會話id始終用於在我們的軟件中通過實時會話驗證真實訪問者。一種方法與簽名:

function(visitorId, sessionId, issueId) 

返回狀態(開,關,等待,等)表示爲int當前客戶的問題。今天,我被我們的客戶指出的一個安全報告,這個特殊的方法很容易受到跨站請求僞造,因爲

測試結果似乎表明一個漏洞,因爲同樣的請求在不同 發送兩次標記會話,同樣收到答覆。這表明沒有參數是動態的 (會話標識符僅在cookie中發送),因此應用程序易受CSRF攻擊。

幾件事情要注意:

  1. 這些方法只適用於POST請求,如果該事項。

  2. 我們軟件中的「會話」與瀏覽器或IIS的會話沒有關係。我們的軟件是Windows服務,所以IIS可能關閉,瀏覽器可能關閉,我們會保留該會話,直到我們的內部會話跟蹤器確定它的時間擺脫它。

3. Ajax請求正在發送到WCF服務,然後中繼請求到我們的Windows服務。

這讓我撓腦袋,因爲我們的大多數方法遵循這種靜態參數模式,但他們也傾向於返回唯一的數據。這讓我想知道,如果我只是返回狀態以及一些隨機數據,我可能會通過這個安全測試,但這看起來似乎不對。解決這個問題的最好方法是什麼?

回答

0

最好是回覆報告,解釋你的會話是如何工作的,結果這個「檢測」是誤報。

來自某些「顧問」的大量「漏洞報告」是由錯誤配置或混淆的掃描程序(如HP AppScan)重新打包的結果。在沒有真正問題的地方,您不需要更改代碼以「遵守」。

只要提到「誤報」,看看他們說什麼:)