為了減少篡改請求的機會,提供簡單的鎖定工具。
如果已設定attribute::RequestLock,則必須將鎖定值附加至請求,格式為 &xxxx
,其中xxxx是四位數的十六進位值。 此十六進位值是使用套用至 修飾元 請求部分(在「?」之後) 會將URL路徑與 修飾元)。 這必須在要求完全經過http編碼之後,但在其(可選)模糊化之前完成。 將請求去模糊化後,伺服器會針對修飾元字串使用相同的雜湊演演算法(排除最後5個字元,其中包含鎖定值)。 如果產生的鍵與鎖定不符,則會拒絕要求。
如果啟用此功能,請注意,其使用有一定的限制,包括:
— 此Dynamic Media使用者介面可能不會顯示正確的詳細資料 上次發佈日期 欄位。 不過,這不會影響發佈。
— 目前,HLS視訊串流不適用於 要求模糊化 和 要求鎖定 已啟用。
— 目前,有些Dynamic Media Viewers無法在 要求模糊化 和 要求鎖定 已啟用。
產生請求鎖定值的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;
}