Verzoek vergrendelen request-locking

Om de kans op het knoeien met verzoeken te verminderen, wordt een eenvoudige sluitingsfaciliteit verstrekt.

Als attribute::RequestLock wordt geplaatst, moet een slotwaarde aan het verzoek worden toegevoegd, in vorm van &xxxx, waarbij xxxx een hexadecimale waarde van vier cijfers is. Deze hexadecimale waarde wordt gegenereerd met behulp van een eenvoudig hash-algoritme dat wordt toegepast op het modifiers deel van het verzoek (na '?' waarmee het URL-pad wordt gescheiden van het modifiers). Dit moet worden gedaan nadat het verzoek volledig http-encoded is, maar alvorens het (naar keuze) wordt verduisterd. Na het ontduisteren van het verzoek, gebruikt de server het zelfde het hakken algoritme op het bepalingskoord (met uitzondering van de laatste 5 karakters, die de slotwaarde bevatten). Als de gegenereerde sleutel niet overeenkomt met de vergrendeling, wordt het verzoek afgewezen.

IMPORTANT
Als u deze functie inschakelt, moet u er rekening mee houden dat er bepaalde gebruiksbeperkingen zijn, waaronder:
- De Dynamic Media-gebruikersinterface bevat mogelijk niet de juiste gegevens voor de Last Published veld. Dit heeft echter geen invloed op de uitgeverij.
- HLS-videostreaming werkt momenteel niet wanneer  Request obfuscation  en Request locking zijn ingeschakeld.
- Sommige Dynamic Media Viewers werken momenteel niet wanneer Request obfuscation en Request locking zijn ingeschakeld.

C++ steekproefcode om de waarde van de verzoekslot te produceren:

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;
}

Zie ook section-a6d45406c0354669ac581793e4fa8436

HTTP-codering, Obfuscatie aanvragen, kenmerk::RequestLock

recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49