[英]What is the best way to implement strong security standards for $_GET id's?
我正在尋求最強大的安全措施,以便人們更改評論,博客,收件箱等URL中的ID ...
有什么建議么?
檢查會話權限以查看是否允許他們執行操作?
如果他們被允許這樣做,那么就執行行動。 如果沒有,那就給他們403。
驗證您獲得的數據是一個好主意,如果您期望數字,請確保您獲得數字。
if(isset($_GET['id']) && ctype_digit($_GET['id']))
{
$id = $_GET['id'];
}else
{
$id = 0;
}
如果您關注的是人們更改網址以查看內容,例如當您只想向他們展示圖片時請求圖片44,您可以選擇以下幾種方式:
如果它只是一個ID(數字,我猜),你所要做的就是將它驗證為一個整數:
$id = (int) $_GET['id'];
然后,您可以查詢您的數據庫。 當ID不存在且無效時,您將獲得空的返回集(因為在這種情況下$id
將為0
)。
我想,對get請求進行數字簽名並將其附加到URL會起作用。
使用僅為您的應用程序知道的私鑰對其進行簽名,然后散列GET變量並在&sig = blahblahblah中提供簽名。
這可能會奏效,但我並不真正理解保護GET變量的必要性。 如果設計得當,GET變量的確無關緊要。 設計合理的應用程序不應允許用戶GET變量做任何有害的事情。
首先,不要依賴$ _GET來獲取關鍵信息。 始終仔細檢查用戶是否有權查看該評論ID,博客ID等等。 至於ID過濾 - 簡單的intval()
會有所幫助(但也不要忘記處理0)
也許你找到php安全的phpsec.org指南,第2章,表單處理有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.