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 no formato &xxxx
, com xxxx sendo um valor hexadecimal de quatro dígitos. Este valor hexadecimal é gerado usando um algoritmo de hash simples aplicado à parte modificadores da solicitação (após '?' que separa o caminho da URL dos 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 campo Last Published. 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 estão habilitados.
- Atualmente, alguns Visualizadores do Dynamic Media não funcionam quando Request obfuscation e Request locking estão habilitados.
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