使用PHP會話變量來防止用戶編輯隱藏/輸入字段值是一個好主意/好習慣嗎?舉例來說,可以說我有以下字段:使用PHP會話阻止字段編輯
<input type="hidden" object_id="1" />
<input type="text" object_id="2" />
etc...
我需要對前端object_id
所以我可以告訴數據庫條目需要在用戶提交(提供他們有權採取行動,以操縱其在數據上)。 $_SESSION
變量看起來像[obj_id = 1, obj_id = 2]
。部分授權過程確保用戶試圖採取行動的所有條目都存在於會話中。如果存在一些差異(例如,具有object_id="3"
的元素),則該用戶未被授權。
是否有解決方案更廣泛接受或做類似的事情通常就足夠了?
如果它存儲在會話中,爲什麼還要在隱藏字段存儲?如果他們不允許修改有問題的元素,爲什麼還要以可能允許更改的形式存儲?我會說這通常是不好的做法。你應該重新考慮你的應用程序流程。 – steve
^我同意已經在會話中的東西不屬於隱藏字段。爲什麼?如果您依賴於GET或POST變量而不是這些會話,則會造成安全災難。 – developerwjk
人們應該問自己,誰擁有這種狀態?如果您爲了獲得預期的功能而不得不跳過箍環,那麼您可能試圖將狀態存儲在不屬於的地方。用戶會話應包含用戶會話數據。沒有更多,沒有更多。 – steve