integridade - define o valor do hash de um recurso (como uma soma de verificação) que deve ser correspondido para que o navegador o execute. O hash garante que o arquivo não foi modificado e contém os dados esperados. Dessa forma, o navegador não carregará recursos diferentes (por exemplo, maliciosos). Imagine uma situação em que seus arquivos JavaScript foram invadidos na CDN e não havia como saber disso. O atributo de integridade impede o carregamento de conteúdo que não corresponde.
O SRI inválido será bloqueado (ferramentas do desenvolvedor do Chrome), independentemente da origem. Abaixo do caso NON-CORS quando o atributo de integridade não corresponde:
A integridade pode ser calculada usando: https://www.srihash.org/
Ou digitando no console ( link ):
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A
crossorigin - define as opções usadas quando o recurso é carregado de um servidor em uma origem diferente. (Consulte CORS (compartilhamento de recursos de origem cruzada) aqui: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS ). Ele efetivamente altera as solicitações HTTP enviadas pelo navegador. Se o atributo "crossorigin" for adicionado - ele resultará na adição de origem: par de valores-chave <ORIGIN> na solicitação HTTP, como mostrado abaixo.
crossorigin pode ser definido como "anônimo" ou "use-credentials". Ambos resultarão na adição de origem: à solicitação. Porém, este último garantirá que as credenciais sejam verificadas. Nenhum atributo crossorigin na tag resultará no envio de uma solicitação sem o par origem: chave-valor.
Aqui está um caso ao solicitar "credenciais de uso" da CDN:
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn"
crossorigin="use-credentials"></script>
Um navegador pode cancelar a solicitação se a origem cruzada estiver configurada incorretamente.
Links
- https://www.w3.org/TR/cors/
- https://tools.ietf.org/html/rfc6454
- https://developer.mozilla.org/en-US/docs/Web/HTML / Elemento / link
Blogs
- https://frederik-braun.com/using-subresource-integrity.html
- https://web-security.guru/en/web-security/subresource-integrity
Attribute integrity not allowed on element link at this point.