簡體   English   中英

為$ _GET id實施強大安全標准的最佳方法是什么?

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

暫無
暫無

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

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