要求鎖定 request-locking
為了減少篡改請求的機會,提供簡單的鎖定工具。
如果設定了attribute::RequestLock,則必須以&xxxx
的格式將鎖定值附加至請求,其中xxxx為四位數的十六進位值。 這個十六進位值是使用套用至要求 修飾元 部分的簡單雜湊演演算法所產生(在'?'之後) 會將URL路徑與 修飾元 分開。 這必須在要求完全經過http編碼之後,但在其(可選)模糊化之前完成。 將請求去模糊化後,伺服器會針對修飾元字串使用相同的雜湊演演算法(排除最後5個字元,其中包含鎖定值)。 如果產生的鍵與鎖定不符,則會拒絕要求。
IMPORTANT
如果您啟用此功能,請注意,其使用方式有一些限制,包括下列專案:
- Dynamic Media使用者介面可能無法顯示 上次發佈 欄位的正確詳細資料。 不過,這不會影響發佈。
— 目前,啟用 要求模糊化 和 要求鎖定 時,HLS視訊串流無法運作。
— 目前,有些Dynamic Media檢視器在啟用 要求模糊化 和 要求鎖定 時無法運作。
- Dynamic Media使用者介面可能無法顯示 上次發佈 欄位的正確詳細資料。 不過,這不會影響發佈。
— 目前,啟用 要求模糊化 和 要求鎖定 時,HLS視訊串流無法運作。
— 目前,有些Dynamic Media檢視器在啟用 要求模糊化 和 要求鎖定 時無法運作。
產生請求鎖定值的C++範常式式碼:
unsigned int lockValue(const char *str)
{
unsigned int sum = 0;
if (str == NULL)
return sum;
for (; *str; ++str)
sum = (sum*131 + *str) & 0xffff;
return sum;
}
另請參閱 section-a6d45406c0354669ac581793e4fa8436
recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49