Anforderungssperre request-locking
Um Manipulationsmöglichkeiten bei Anfragen zu reduzieren, ist eine einfache Sperrmöglichkeit vorgesehen.
Wenn das Attribut::RequestLock festgelegt ist, muss der Anfrage ein Sperrwert in Form von &xxxx
angehängt werden, wobei xxxx ein vierstelliger Hexadezimalwert ist. Dieser Hexadezimalwert wird mithilfe eines einfachen Hash-Algorithmus generiert, der auf den Modifiers-Teil der Anfrage angewendet wird (nach dem "?“ Dadurch wird der URL-Pfad von den Modifikatoren) getrennt. Dies muss erfolgen, nachdem die Anfrage vollständig HTTP-codiert ist, aber bevor sie (optional) verschleiert wird. Nach der Deverschleierung der Anfrage verwendet der Server denselben Hash-Algorithmus für die Modifikatorzeichenfolge (mit Ausnahme der letzten 5 Zeichen, die den Sperrwert enthalten). Wenn der generierte Schlüssel nicht mit der Sperre übereinstimmt, wird die Anfrage abgelehnt.
- Auf der Dynamic Media-Benutzeroberfläche werden möglicherweise nicht die richtigen Details für das Feld Zuletzt veröffentlicht angezeigt. Dies wirkt sich jedoch nicht auf die Veröffentlichung aus.
- Derzeit funktioniert das HLS-Video-Streaming nicht, wenn Anfrageverschleierung und Anfragesperre aktiviert sind.
- Derzeit funktionieren einige Dynamic Media-Viewer nicht, wenn Anfragenverschleierung und Anfragensperrung aktiviert sind.
C+±Beispielcode zum Generieren des Werts der Anforderungssperre:
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;
}
Verwandte Themen section-a6d45406c0354669ac581793e4fa8436
HTTP-, Anfrage-, attribute::RequestLock