Problema

Como podemos evitar a transformação maliciosa de nossas URLs e impedir o download de imagens em alta resolução?

Solução

Se estiver preocupado com a adulteração de URLs ou com o download de imagens em alta resolução, faça o seguinte:

Configuração do conjunto de regras para alterar a sintaxe do URL

Use um conjunto de regras configurado no servidor para alterar a sintaxe das URLs dos clientes. As URLs podem usar um formato menos óbvio como solicitação dinâmica, com parâmetros que podem ser alterados.

Essencialmente, se uma chamada de imagem pode ser alterada da sintaxe normal do Servidor de imagem do Scene7 que se parece com isto:

http:///is/image//?

para algo que parece mais estático, como:

http:///is/image///.jpg

É menos óbvio que existam parâmetros que possam ser modificados na solicitação de URL para alterar a resposta. Na verdade, deve ser possível configurar um conjunto de regras para que qualquer solicitação que não passe por esse formato ou mecanismo seja rejeitada.

Ofuscação de URL

O conteúdo de toda a parte dos modificadores da cadeia de caracteres de solicitação, incluindo o sufixo de bloqueio opcional, pode ser obscurecido pela aplicação da codificação padrão base64. O servidor tenta decodificar se attribute::RequestObfuscation estiver definido. Se a decodificação falhar, a solicitação será rejeitada. Se o bloqueio de solicitação e a ofuscação de solicitação forem aplicados, o sufixo de bloqueio deverá ser gerado e anexado antes da codificação base64.

Exemplo http://server/myTemplate?$txt=my text string&$img=myImage

codifica para:

http://servidor/meuModelo?dHh0PW15IHRleHQgc3RyaW5nJiRpbWc9bXlJbWFnZQ==

Para gerar essa codificação, use um site como: http://www.base64encode.org/.

Quaisquer ocorrências de "=", "&" e "%" em cadeias de valores devem ser escapadas usando a codificação "%xx" antes de a solicitação ser ofuscada. Não é necessário codificar em HTTP a parte dos modificadores da solicitação antes ou depois da ofuscação, mesmo se o bloqueio de solicitação for aplicado, já que a codificação base64 é segura para transmissão HTTP.

http://microsite.omniture.com/t2/help/en_US/s7/is_ir_api/index.html#Request_Obfuscation

III. Solicitação de bloqueio

Para reduzir a oportunidade de adulteração de solicitações, há um recurso de bloqueio simples.

Se attribute::RequestLock está definido, um valor de bloqueio deve ser anexado à solicitação, na forma de &xxxx, com xxxx sendo um valor hexadecimal de quatro dígitos. Esse valor hexadecimal é gerado usando um algoritmo de hash simples aplicado à parte de modificadores da solicitação (após o "?" que separa o caminho da URL dos modificadores). Isso deve ser feito após a solicitação ser 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 cadeia de caracteres modificadora (excluindo os últimos cinco caracteres, que contêm o valor de bloqueio). Se a chave gerada não corresponde ao bloqueio, a solicitação é rejeitada.

http://microsite.omniture.com/t2/help/en_US/s7/is_ir_api/index.html#Request_Locking

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online