Bloqueio de solicitação request-locking
Para reduzir a oportunidade de adulteração de solicitações, é fornecido um simples recurso de bloqueio.
Se attribute::RequestLock estiver definido, um valor de bloqueio deverá ser anexado à solicitação, na forma de &xxxx
, sendo xxxx um valor hexadecimal de quatro dígitos. Esse valor hexadecimal é gerado usando um algoritmo de hash simples aplicado ao modificadores parte da solicitação (depois do caractere "?") que separa o caminho do URL da variável modificadores). Isso deve ser feito depois que a solicitação é totalmente codificada em http, mas antes de ser ofuscada (opcionalmente). Depois de desofuscar a solicitação, o servidor usa o mesmo algoritmo de hash na string do modificador (excluindo os últimos 5 caracteres, que contêm o valor lock). Se a chave gerada não corresponder ao bloqueio, a solicitação será rejeitada.
- A interface do usuário do Dynamic Media pode não mostrar os detalhes corretos para o Last Published campo. No entanto, esse efeito não afeta a publicação.
- Atualmente, o streaming de vídeo HLS não funciona quando Request obfuscation e Request locking são ativados.
- Atualmente, alguns visualizadores do Dynamic Media não funcionam quando Request obfuscation e Request locking são ativados.
Código de amostra do C++ para gerar o valor de bloqueio da solicitação:
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;
}
Consulte também section-a6d45406c0354669ac581793e4fa8436
Codificação HTTP, Solicitar ofuscação, attribute::RequestLock