[英]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.