2017-08-10 32 views
0

我想知道是否是安全調用一個JavaScript文件的控制器動作,並傳遞(說敏感)的參數。使用參數從JavaScript調用控制器動作是否安全?

假設最終用戶對某件事進行了賭注,然後該賭注的價值將被髮送給控制器操作。

賭注本身輸入到網頁上的文本框和JavaScript把該值作爲參數傳遞給一個按鈕點擊事件的動作。

在動作被調用之前,用戶是否可以在點擊按鈕後操縱他/她的下注值?

感謝

+0

它可以被操縱嗎?是的 –

+0

他只能在文本框中輸入不同的值。區別在哪裏? – marsze

回答

1

它可以被操縱,但不應該有問題,只要你不會發送例如一個價格給控制器將被處理。

想一想:有人訂購比薩餅,比薩餅的價格是從javascript發送到控制器。這不是一個好方法,因爲價格可以設置爲0,並且你沒有錢。在這種情況下,您會將ID或匹薩的名稱傳遞給控制器​​,並從數據庫中獲取價格。

你的情況的原因是沒有區別的,如果他類型10,然後操縱到20這不是一個問題,如果他直接類型20.在這兩種情況下,你會得到20

如果號碼你正在處理你的控制器中的所有數據,你應該是安全的。如果你將數據傳遞給控制器​​檢查,如果這是一個問題,如果它不是用戶鍵入的值。

+0

謝謝你的解釋和例子。得到它了 ;-) – Kristian

0

我在想,如果它是安全調用從JavaScript文件中的控制器動作,並通過(說敏感)的參數給它。

「保存」 的方面...?如果連接是SSL,那麼您肯定可以認爲這些值將從客戶端安全地傳輸到服務器。但穩定性方面的「安全」取決於您的應用。

可以將參數進行操作之前發送到控制器?

當然。但參數「敏感」的方式是什麼?沒有客戶/用戶知道它,沒有什麼可以從客戶端發送到服務器。

+0

編輯我的問題。謝謝你的回答,儘管 – Kristian

1

今天,大多數現代網站被大量JavaScript驅動的,所以是的,它是安全的呼叫從一個控制器動作JavaScript文件。但是你必須確保你有一些安全措施。

  1. 基於SSL的HTTP。 (加密敏感日期&防止中間人攻擊)
  2. 防僞標記(防止跨站點請求僞造)
  3. 始終驗證客戶端輸入。在執行任何操作之前,請確保您有適當的服務器端驗證(數據註釋等)和模型狀態有效(ModelState.IsValid)。
  4. 我知道asp。net mvc具有一定程度的防範跨站點腳本攻擊的內置保護,但要確保客戶端輸入總是以HTML編碼,如果您將其顯示回網頁。
相關問題