簡體   English   中英

如何在ASP.NET中保護AJAX請求?

[英]How to secure AJAX request in ASP.NET?

我正在開發一個應用程序,我在其中顯示網格中的產品。 在網格中有一個列具有禁用/啟用圖標,點擊該圖標后,我通過AJAX向我的頁面manageProduct.aspx發出請求,以啟用/禁用該特定產品。

在我的ajax請求中,我將productID作為參數傳遞,因此最終的ajax查詢為as

http://example.com/manageProduct.aspx?id=234

現在,如果有人(專業黑客或網絡開發人員)可以獲得此URL(很容易從我的javascript文件中獲取),那么他可以創建一個將作為循環運行的腳本並禁用我的所有產品。

所以,我想知道是否有任何機制,技術或方法,如果有人試圖直接執行該頁面,它將返回錯誤(正確的消息“你沒有被授權或其他東西”)否則如果頁面從所需的頁面執行,就像我顯示產品列表一樣,然后它將正確執行。

基本上我想保護我的AJAX請求,所以沒有人可以直接執行它們。

在PHP中:

在php中,我的同事通過檢查頁面的refrer來保護這個PHP頁面。 如下:

$back_link = $_SERVER['HTTP_REFERER'];

if ($back_link =='')
{
   echo 'You are not authorized to execute this page';
}
else
{
  //coding
}

請告訴我如何在ASP.NET(C#)中使用相同或任何其他不同但安全的技術,我在我的應用程序中使用jQUERY來發出ajax請求。

謝謝

忘記使用引用者 - 偽造是微不足道的。 沒有辦法可靠地判斷請求是直接發出還是作為對其他內容的響應。

如果您想通過請求URL來阻止未經授權的人員對系統產生影響,那么您需要更智能的東西來確定他們的授權級別(可能是使用HTTP Basic Auth或Cookies實現的密碼系統)。

無論你做什么,都不要依賴像'HTTP_REFERER'這樣的http標頭,因為它們很容易被欺騙。

您需要檢查您的用戶已登錄的服務。編寫一個好的安全登錄系統也不容易,但這是您需要做的,或使用內置的“表單身份驗證”。

此外,不要使用順序產品ID,使用uniqueidentifiers,您仍然可以使用整數產品ID進行顯示,但對於您描述的所有其他用途,您將要使用產品uniqueidentifier / guid。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM