為了減少篡改請求的機會,提供了簡單的鎖定設備。
如果設定屬性::RequestLock,則必須以&xxxx
的形式將鎖定值附加至請求,其中xxxx為四位十六進位值。 此十六進位值是使用套用至要求之修飾元部分(在'?'之後)的簡單雜湊演算法產生 將URL路徑與修飾詞分隔。 這必須在請求完全http編碼後,但在其被模糊化之前(可選)完成。 在取消對請求進行模糊處理後,伺服器會在修飾詞字串上使用相同的雜湊演算法(排除最後5個字元,其中包含鎖定值)。 如果產生的金鑰不符合鎖定,則會拒絕請求。
如果您啟用此功能,請注意其使用有某些限制,其中包括:
-動態媒體使用者介面可能無法顯示上次發佈欄位的正確詳細資訊。 不過,這種影響並不會影響發佈。
-目前,啟用「請求模糊化」和「請求鎖定」時,HLS 視訊 串流無 法運作。
-目前,啟用「請求模糊化」和「請求鎖定」時, 有些 動態媒 體檢 視器無法運作。
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;
}
HTTP編碼,請 求模糊化,屬 性::RequestLock