簡體   English   中英

通過PHP中的AJAX獲取或傳遞敏感數據

[英]Get or Pass Sensitive Data via AJAX in PHP

我想使用Ajax和PHP更新數據庫中的一行數據; 但是,我在以下問題上苦苦掙扎: 要更新的數據庫中的字段(此后為id )取決於ajax請求從其發送的頁面

但是,我需要將此id放入Ajax調用的PHP腳本中:

  1. 我不想在頁面的數據屬性或隱藏輸入中設置id ,因為它們都可以被惡意用戶操縱。

  2. 同樣,使用$_SERVER URL標識也不安全,因此使用引用URL標識id也容易受到欺騙。

  3. 我無法在SESSION變量(或COOKIES)中設置id ,因為用戶可能會打開多個頁面,並且SESSION將僅保留打開的最后一個頁面id

我能想到的唯一解決方案是在db表中創建一個隨機令牌到id的映射,並將其傳遞到SESSION變量中(按照上述#3),然后檢查該表中的令牌並獲取相應的令牌id的方式。 似乎有些令人費解。

還有其他選擇或想法嗎? 謝謝。

這是與OWASP Top10 A7 (缺少功能級別訪問控制)有關的問題。

將您的ID放在頁面上可能沒有問題,因此頁面可以將其發送回-您只需要驗證用戶是否允許實際的保存請求即可。

試想一下,無論是否在頁面上放置ID,頁面都知道執行該操作的基本URL,因此他們可以繼續猜測ID。

簡化您的邏輯。 從客戶端到服務器傳遞某種指示符,以指示正在使用哪種類型的ID。

如果您創建過於復雜的應用程序邏輯來解決安全性問題,則代碼的問題可能會比安全性方面的改進更多。

使用SSL / HTTPS和WAF(Web應用程序防火牆-如mod_security)。

暫無
暫無

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

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