簡體   English   中英

如何保護從AJAX文件傳遞到jqGrid的JSON數據的安全

[英]How to secure the JSON data that's being passed from the AJAX file to jqGrid

首先,非常感謝您制作jqGrid! 這是一項出色的工作!

當我的index.php文件將JSON編碼的搜索條件過帳到我的grid.php文件中時,grid.php處理該條件,查詢數據庫,然后將JSON編碼的字符串返回給index.php,這反過來又獲取結果並將它們呈現在jqGrid表中。

一切都很棒。

但是,如果內部用戶將其瀏覽器指向grid.php,它將返回一組滿足默認條件的記錄(每頁30條記錄,這些字段及其數據均已編程)。 並且因為我將其設置為POST,所以用戶可以將查詢參數手動附加到grid.php,例如:

    http://foo.bar/grid.php?clientID=123&city=anytown

我已經在index.php和grid.php中都進行了安全檢查。 舉個例子:

    if(userGroup='Sales'){
       $sqlstr = "SELECT * FROM table WHERE group='SALES'";
    }else{
       $sqlstr = "SELECT * FROM table";
    }

但是問題在於,他們可以通過直接將瀏覽器指向grid.php來繞過這些檢查。

有人對如何保護grid.php返回的字符串有建議嗎?

更新

根據賈斯汀的建議,我認為我現在可能走在正確的道路上。 這樣的事情可能會起作用:

    $trace = debug_backtrace();
    if ($trace[0]['file'] != 'index.php'){
       echo "There was an error. Please contact your Systems Administrator.";
       return 0;
    }

好吧,這沒有按預期工作。 我在此保留此信息以供后代參考。

您需要添加PHP代碼以保護grid.php URL。 首先,如果對您的應用程序可行,則可以添加身份驗證系統以阻止僅任何用戶訪問URL。 一旦就位,您可以通過添加基於角色或基於用戶的權限來進一步保護它。

例如,僅當用戶提供“ sales”組並且他們是“ sales”組的成員時,才允許附加“ sales”用戶組。

如何實際實現此方法取決於所使用的PHP框架(如果有)以及應用程序的要求。

暫無
暫無

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

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