Verrouillage de requête request-locking

Afin de réduire les possibilités de manipulation des demandes, une simple fonction de verrouillage est fournie.

Si attribute::RequestLock est défini, une valeur de verrouillage doit être ajoutée à la requête, sous la forme d’un &xxxx, xxxx étant une valeur hexadécimale à quatre chiffres. Cette valeur hex est générée à l’aide d’un simple algorithme de hachage appliqué à la partie modificateurs de la requête (après le « ? ») qui sépare le chemin de l’URL des modificateurs). Cette opération doit être effectuée après l’encodage complet de la requête http, mais avant son obscurcissement (facultatif). Après avoir supprimé l’obscurcissement de la requête, le serveur utilise le même algorithme de hachage sur la chaîne de modificateur (à l’exclusion des 5 derniers caractères, qui contiennent la valeur de verrouillage). Si la clé générée ne correspond pas au verrou, la requête est rejetée.

IMPORTANT
Si vous activez cette fonctionnalité, gardez à l’esprit que certaines limitations de son utilisation incluent :
- L’interface utilisateur de Dynamic Media peut ne pas afficher les détails corrects pour le champ Dernière publication. Toutefois, cet impact n’a aucune incidence sur la publication.
- Actuellement, la diffusion vidéo en continu HLS ne fonctionne pas lorsque Demander l’obscurcissement et Demander le verrouillage sont activés.
- Actuellement, certaines visionneuses Dynamic Media ne fonctionnent pas lorsque les options Obfuscation de requête et Verrouillage de requête sont activées.

Exemple de code C++ pour générer la valeur de verrouillage de requête :

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

Voir aussi section-a6d45406c0354669ac581793e4fa8436

Encodage HTTP, Obscurcissement de requête, attribute::RequestLock

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