要求に対する改ざんの機会を低減するために、簡単なロック設備を備える。
attribute::RequestLockが設定されている場合、ロック値を&xxxx
の形式でリクエストに追加する必要があります。xxxxは4桁の16進値です。 この16進値は、リクエストのmodifiers部分に適用される単純なハッシュアルゴリズムを使用して生成されます(「?」の後)。 は、URLパスを修飾子から区切ります)。 この処理は、リクエストが完全にHTTPエンコードされた後、不明化される前に行う必要があります(オプション)。 リクエストの不明化を解除した後、サーバは修飾子文字列に対して同じハッシュアルゴリズムを使用します(ロック値を含む最後の5文字を除く)。 生成されたキーがロックと一致しない場合、要求は拒否されます。
この機能を有効にする場合、使用には次のような制限があります。
-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;
}