Aspnetcore: Considere alterar as URLs de assemblies .NET para não terminar com .dll

Criado em 27 fev. 2018  ·  104Comentários  ·  Fonte: dotnet/aspnetcore

Eu queria ver a demonstração em https://blazor-demo.github.io/ e meu firewall corporativo bloqueou MicroApp.dll , enquanto outras dlls baixaram com sucesso. Como muitos softwares são paranóicos em relação ao download/transferência de binários do Windows, talvez valha a pena ofuscá-los um pouco? Ou, pelo menos, renomear?

Components Big Rock area-blazor blazor-wasm enhancement

Comentários muito úteis

Que tal YourAssembly.blazor ? Pode ser uma boa maneira de promover o projeto (muito, muito pouco) se algum desenvolvedor da web procurar nas ferramentas de desenvolvimento para ver como o site foi construído? Ou talvez seja só eu que às vezes vejo que um site foi construído com Vue.js ou qualquer outra coisa e pensa "oh, legal" :)

Todos 104 comentários

Isso é interessante - obrigado por nos avisar. Analisaremos a alteração dos URLs para YourAssembly_dll ou algo assim, embora o façamos por padrão possa depender de recebermos mais relatórios sobre isso e se podemos estabelecer que é devido ao nome ou mais profundo inspeção do conteúdo da carga útil.

@SteveSandersonMS apenas para deixar meu 2c aqui. Não são apenas os firewalls corporativos que sofrem com o .dll-fobia . Alguns antivírus locais também apresentam esse mesmo problema.

O @galvesribeiro tem razão em não falar que se eu não estivesse familiarizado com o que está acontecendo e visse um site tentando baixar uma DLL eu estaria fora de lá! Considere a percepção ao abordar isso :)

@joeizy sim, concordo totalmente com você que, na maioria dos casos, bloquear dlls é a coisa certa a fazer. É por isso que estamos falando em renomeá-lo, pois temos certeza do que estamos fazendo ...

Que tal YourAssembly.blazor ? Pode ser uma boa maneira de promover o projeto (muito, muito pouco) se algum desenvolvedor da web procurar nas ferramentas de desenvolvimento para ver como o site foi construído? Ou talvez seja só eu que às vezes vejo que um site foi construído com Vue.js ou qualquer outra coisa e pensa "oh, legal" :)

Que tal simplesmente .bin?

Eu gosto de .bin ou .blazor também.

+1 “.bin”

.lib ou .bin ou .ilasm ?

Para que possamos tomar uma decisão informada sobre isso, ajudaria muito se tivéssemos etapas de reprodução aproximadas (ou pelo menos alguma dica nessa direção). Precisamos entender especificamente se é um problema de nomenclatura ou um problema de conteúdo, por exemplo.

Qual produto de firewall específico é conhecido por bloquear .dll , por padrão ou em uma configuração comum? Você pode me indicar algo que eu possa instalar e experimentar? Ou se não, você tem pelo menos o nome dele e talvez links para algum de seus documentos de configuração?

@SteveSandersonMS Acho que não é um produto específico. Vários produtos, especialmente aqueles muito usados ​​por empresas, têm configurações de maré em tipos de arquivos, especialmente os comuns como .exe, .dll, .so, etc.

O próprio nome é o primeiro bloqueador, mas uma maneira de _reduzir_ esse problema é da mesma forma que lidamos com o ClickOnce desde o .Net 2.0. Assinatura de assembleias.

O problema é que (1) não é barato, (2) o processo para obter esses certificados, mesmo que você possa comprá-los, é MUITO complexo e até não está disponível em alguns países e, mesmo que você os obtenha, (3) o certificado para a empresa/desenvolvedor geralmente demora um pouco para ser _confiável_ pelo banco de dados do software antivírus.

Para os assemblies lançados pela MSFT, não é uma grande novidade, pois sabemos que todos os assemblys enviados, mesmo os OSS, são assinados por código pela política corpnet. Mas pense em outros desenvolvedores, startups e projetos de OSS. Todos vão sofrer com isso.

Lembro-me que nos bons velhos tempos quando o Silverlight era uma coisa, se quiséssemos baixar assemblies sob demanda, colocávamos em um arquivo xap (que na prática é um arquivo zip) e depois os extraímos com
https://msdn.microsoft.com/en-us/library/cc190632 (v=vs.95).aspx

Não tenho certeza se havia um motivo para isso (além de combinar várias dlls em um único arquivo). Acho que a equipe do Silverlight deve estar familiarizada com os problemas de firewall, se houver algum.

O problema com o agrupamento é que, se você precisar atualizar 1 dessas dlls, todo o pacote deve ser atualizado ... Não é compatível com cache ou largura de banda o modelo Silverlight ...

Não estou sugerindo o uso de empacotamento para Blazor. Estou apenas dizendo que, além do recurso de empacotamento, talvez a equipe do Silverlight estivesse usando arquivos xap para evitar problemas de firewall. Isso é apenas um palpite, é claro.

Mantenha ".net" como extensão

Estamos bem no reino do bikeshedding sobre isso agora. Portanto, estou pedindo especificamente exemplos concretos de produtos de firewall reais que têm problemas com isso.

Acho que não é um produto específico

No entanto, exemplos de produtos específicos e sob quais configurações isso acontece ajudariam.

@SteveSandersonMS Eu entendi essa parte. O ponto é que corrigir o problema de um antivírus/firewall específico não cobrirá todos os outros, pois todos sabemos que cada um tem sua própria heurística, banco de dados e configurações para isso. O único caso que poderia cobrir as regras de nomenclatura e assinatura para tudo é:

  1. Assine as assembleias como de costume e;
  2. Certifique-se de que a nomenclatura não esteja na lista negra _default_

@SteveSandersonMS Eu vi alguns problemas ao usar o NOD32 da ESET e vi o bloco do scanner ativo baixando alguns arquivos binários silenciosamente, estes parecem ser Bibliotecas de Link Dinâmico que não possuem uma assinatura digital.

Obrigado pela informação @grahamehorner. Você sabe mais ou menos quais seriam as etapas de reprodução? Se eu acabei de instalar o NOD32 em uma máquina Windows (descartável), isso é suficiente para torná-lo incapaz de abrir https://blazor-demo.github.io/? Ou é necessária alguma configuração adicional?

De https://www.paloaltonetworks.com/documentation/80/pan-os/pan-os/threat-prevention/set-up-file-blocking :

Os Perfis de Bloqueio de Arquivos permitem identificar tipos de arquivos específicos que você deseja bloquear ou monitorar. Para a maioria do tráfego (incluindo o tráfego em sua rede interna), você desejará bloquear arquivos que são conhecidos por conterem ameaças ou que não tenham um caso de uso real para upload/download. Atualmente, eles incluem arquivos em lote, DLLs, arquivos de classe Java, arquivos de ajuda, atalhos do Windows (.lnk) e arquivos BitTorrent.

@SteveSandersonMS Estou aguardando uma reunião com nossa equipe de administração de TI que gerencia remotamente o NOD32 e sua configuração para descobrir o que (se houver) eles mudaram/personalizaram, pois também recebi um e-mail automatizado do nosso sistema NOD32 informando que eu pode ter violado a política de segurança corporativa baixando/instalando software não confiável. Vou postar de volta como/quando eu descobrir ou tiver informações adicionais.

Eu estou querendo saber se os .dlls poderiam/seriam bloqueados se eles fossem empacotados em um .nupkg e descompactados/carregados por blazor após o download?

Atualmente, eles incluem arquivos em lote, DLLs, arquivos de classe Java, arquivos de ajuda, atalhos do Windows (.lnk) e arquivos BitTorrent.

É isso que estou dizendo... Independentemente do produto, essa é a lista _default_ de tipos de arquivos que seriam bloqueados por qualquer administrador de TI em uma empresa normal (geralmente não baseada em TI)...

BTW, se houver alguém da equipe do WPF que trabalhou com .xap, eles podem dizer claramente a qualquer um o que eles enfrentaram quando lançaram o "WPF em um navegador" na época e enfrentaram _exatamente_ o mesmo problema.

Demorou um pouco até que _todos_ os softwares antivírus começassem a _confiar_ nessa extensão.

Eu tive o mesmo problema. Testou a amostra dentro de uma rede corporativa. Um arquivo DLL foi relatado como bloqueado. Isso basicamente torna impossível demonstrar isso para um colega. Obter arquivos DLL para serem desbloqueados é provavelmente um não-inicial.

Olhando a página oficial das convenções...
http://webassembly.github.io/spec/core/binary/conventions.html

A extensão recomendada para arquivos contendo módulos WebAssembly em formato binário é “.wasm” e o tipo de mídia recomendado é “application/wasm”.

Portanto, parece que a primeira coisa a fazer é renomear os arquivos para .wasm, e se eles ainda estiverem bloqueados, o firewall precisa ser desbloqueado.

Não acho que renomear os arquivos para .wasm seja uma boa ideia. As DLLs não são módulos Wasm, são assemblies .NET que são (atualmente) interpretados pelo runtime Mono Wasm ( leia mais ). Apenas o tempo de execução Mono é um módulo Wasm. No entanto, também voto para renomear as DLLs para outra coisa por causa dos firewalls, especialmente em cenários corporativos.

O antivírus AVG versão 18.1.3044 bloqueou os arquivos DLL também quando tentei visitar https://blazor-realworld.azurewebsites.net/

Não acho que renomear os arquivos para .wasm seja uma boa ideia. As DLLs não são módulos Wasm, são assemblies .NET que são (atualmente) interpretados pelo runtime Mono Wasm (leia mais). Apenas o tempo de execução Mono é um módulo Wasm.

O problema é o que essa extensão "outra coisa" seria porque nenhuma das extensões existentes se aplica (cargas .NET MSIL interpretadas diretamente na caixa de proteção do navegador é um conceito totalmente novo em segurança), enquanto o wasm já é permitido pelo firewall corporativo.

O manuseio de .xap pode não ser uma boa referência do ponto de vista de segurança, pois ignora a sandbox de segurança do navegador, diferentemente do wasm.

Sim, os arquivos DLL contêm MSIL, por isso é tecnicamente verdade, eles não são estritamente binários. Mas eles são nomeados DLL porque são nomeados após DLLs nativas do Win32, embora compartilhem apenas um fragmento do formato PE e sejam, em sua maioria, diferentes internamente de qualquer maneira. Na mesma linha, wasm é o formato de biblioteca "nativo" para Webassembly, e pelo mesmo motivo que fazia sentido nomear bibliotecas gerenciadas DLL:s (mesmo que elas não sejam nada parecidas com DLL:s nativas internamente), pode fazer sentido para nomeá-los wasm. De uma perspectiva de segurança, DLL implica "execução local", enquanto wasm implica "execução do navegador". Para estar em conformidade com o formato wasm, talvez o assembly .NET possa ser incorporado como dados para torná-lo um wasm válido com a string inicial mágica e tudo mais.

A ideia aqui é que existe um análogo: wasm é para MSIL o que PE é para MSIL: um formato de contêiner wrapper. Precedente:

https://docs.microsoft.com/en-us/dotnet/standard/assembly-format

O formato binário .NET é baseado no formato de arquivo do Windows PE. Na verdade, as bibliotecas de classe .NET são PEs compatíveis com o Windows e, à primeira vista, parecem ser bibliotecas de vínculo dinâmico (DLLs) ou executáveis ​​de aplicativos (EXEs) do Windows. Esta é uma característica muito útil no Windows, onde eles podem se disfarçar como binários executáveis ​​nativos e obter um pouco do mesmo tratamento (por exemplo, carga do SO, ferramentas PE).

Se o modelo Blazor não funcionar 100% bem com os firewalls existentes, é quase um fracasso. Ele deve fluir por todos os firewalls sem esforço, assim como o Javascript. Se eu fosse um administrador de firewall, não tenho certeza se gostaria de adicionar uma nova entrada de lista branca para cada novo idioma que tenha seu próprio formato IL.

Se o modelo Blazor não funcionar 100% bem com os firewalls existentes, é quase um fracasso.

@SteveSandersonMS desculpe se você já respondeu isso antes, mas você prevê que isso seja solucionável?

Claro! Alteraremos os URLs ou o formato do conteúdo conforme necessário.

seria ótimo se isso pudesse ser priorizado para o próximo marco. Realmente acalmaria os medos das pessoas de que é uma rolha de show devido a possíveis bloqueios de segurança corporativa

@JonnyGibson Como Steve mencionou anteriormente, planejamos resolver isso, mas no espírito de Blazor ser um projeto experimental, estamos priorizando o trabalho agora que é menos compreendido. Temos certeza de que sabemos como lidar com isso.

Aqui está outro exemplo:
blazor antivirus

Talvez uma solução seja deixar o desenvolvedor definir a extensão para um aplicativo até que firewalls e AV adicionem suporte na lista de permissões para qualquer extensão escolhida.

Em relação ao meu comentário anterior sobre deixar o desenvolvedor definir a extensão, isso também permitiria que os desenvolvedores criassem aplicativos com extensões diferentes para testar o comportamento do firewall e do antivírus.

@jonparker @torhovland parece-me que, em vez de definir extensões que podem ou não ser bloqueadas, precisamos encontrar uma maneira que garanta que nunca seja bloqueada. Ninguém vai usar uma estrutura que fará com que um site seja bloqueado em alguns cenários (bastante prováveis).

A ideia de remover a extensão parece razoável e deve ser tentada o mais rápido possível. Eu não vi outras questões levantadas que sejam tão próximas quanto isso de ser um espetáculo.

A ideia de remover a extensão parece razoável e deve ser tentada o mais rápido possível.

Para testarmos qualquer correção, precisamos reproduzir ou pelo menos investigar o maior número possível de ambientes problemáticos. Para nos ajudar com isso, continue fornecendo detalhes sobre seus ambientes em que você encontra problemas com o bloqueio de aplicativos Blazor. Obrigado a todos que já relataram isso!

Eu não vi outras questões levantadas que sejam tão próximas quanto isso de ser um espetáculo.

A longo prazo, não estamos muito preocupados com essa questão. Estamos bastante confiantes de que seremos capazes de lidar com esse problema com alguma forma de empacotamento de aplicativo ou transformação de aplicativo. Mas estamos adiando o projeto de uma solução até que tenhamos mais dados sobre quais são os problemas específicos.

WebSense é a ferramenta que minha rede corporativa usa para controlar o acesso à web. Tenho certeza de que o problema de bloqueio do Blazor é apenas o bloqueio explícito de download de arquivos executáveis.
https://www.websense.com/content/support/library/web/hosted/admin_guide/exten_block.aspx

Parece que o AVG está bloqueando meu projeto blazor. https://files.gitter.im/aspnet/Blazor/Oc8w/image.png
blazor antivirus

Posso confirmar que também tive experiência com o AVG bloqueando meu site. Meu amigo não conseguiu acessar o site sem desativar o AVG. até onde eu sei, ele usou as configurações padrão do antivírus.

A extensão DLL não é um problema... Com a compilação AOT em andamento, as DLLs não serão distribuídas, pois entendo que as DLLs são usadas para um loop de desenvolvimento mais rápido. Não gaste tempo com isso, faça o AOT funcionar, esse é o objetivo.

Um poço... #897 era uma duplicata.

Este foi o meu erro
image

talvez possamos definir a extensão como um parâmetro no UpdateIndex, onde a obteríamos na linha de comando (padrão "dll"): https://github.com/aspnet/Blazor/blob/dev/src/Microsoft.AspNetCore.Blazor .Build/Core/IndexHtmlWriter.cs

Se eu enviar um PR sobre isso, seria considerado?

Por favor, corrija este problema, é o único item que me impede de testar isso na empresa.

Sugestão de correção rápida se você estiver usando o IIS com o módulo de reescrita de URL:

  • você pode alterar na saída todos os arquivos ".*.dll por .wasmnet ou qualquer coisa. ele editará o conteúdo da tag do script (https://docs.microsoft.com/en-us/iis/extensions/url-rewrite -module/creating-outbound-rules-for-url-rewrite-module)
  • reescreva esta extensão para dll para que os arquivos bons sejam enviados para o navegador (ou renomeie os arquivos dll após a implantação)

você pode fazer isso com .net core https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/url-rewriting?view=aspnetcore-2.1&tabs=aspnetcore2x

Só mais uma ideia: observo que a maioria desses produtos de firewall e segurança não bloqueia arquivos .zip. De fato, muitas vezes ao tentar baixar um arquivo .dll onde estou bloqueado em alguma rede corporativa, percebo que uma versão .zip do mesmo arquivo quase sempre passará pelo bloqueio.

Assim, poderíamos simplesmente empacotar MyLib.dll como MyLib.zip (contendo um único arquivo MyLib.dll dentro do zip). O problema é que o navegador será nativamente mais rápido descompactando o conteúdo dos arquivos em comparação com se fosse WASM/MONO usando algum assembly .NET para descompactar o conteúdo do arquivo compactado. Haveria pelo menos uma desaceleração de 2x-3x para descompactar.

Mas há uma solução: podemos empacotar o arquivo MyLib.dll como MyLib.zip com compactação ZERO usada, e deixar para o servidor web compactar o arquivo (usando qualquer formato de compactação que o navegador cliente suporte ao solicitar o arquivo). Quando o navegador baixar esse arquivo, ele descompactará nativamente o conteúdo recebido, antes de atingir Mono/WebAssembly. Assim, o tempo de execução do Mono precisaria apenas descompactar o arquivo .zip (que neste momento é o arquivo zip descompactado original).

Espero que ninguém esteja confuso com o acima. Estou apenas sugerindo que usemos .zip como um formato de contêiner não compactado; em seguida, deixe que o navegador da Web e o servidor da Web lidem com a compactação e a descompactação da maneira que normalmente fazem para qualquer arquivo solicitado. Para dar um exemplo concreto:

  1. 2 MB mscorlib.dll é compactado em 2 MB mscorlib.zip (observe que configuramos a compactação como NONE).
  2. O navegador da Web solicita mscorlib.zip (enviando cabeçalhos normais de codificação de aceitação com métodos de compactação suportados).
  3. O servidor Web compacta o conteúdo do mscorlib.zip para 700 MB e o envia para o servidor, então o tamanho do pacote seria o mesmo de hoje)
  4. O navegador da Web (Chrome ou Edge, etc) descompacta o conteúdo nativamente, e o tempo de execução do Mono receberia o arquivo mscorlib.zip original de 2 MB, que o WASM Mono pode descompactar no .dll original muito rápido porque não há nenhuma compactação interna usada no aquele arquivo zip original.

Então essa é apenas mais uma sugestão para incluir no bucket. Meus pensamentos sobre outras ideias sugeridas:

  • Espero que seja suficiente apenas remover a extensão, pois em MyLib.dll torna-se MyLib ou a sugestão anterior MyLib_dll.
  • Eu também concordo que deve ser possível "empacotar" o assembly como dados dentro de um arquivo .wasm (mas ainda internamente no formato IL) da mesma forma que os assemblies .NET usam o formato PE e receberam .dll como uma extensão. Assim, poderíamos ter um MyLib.wasm que armazenasse internamente o IL como dados. A única desvantagem que vejo aqui é que, quando temos uma compilação AOT real, pode ser difícil dizer visualmente se um arquivo .wasm contém código compilado IL ou Natively (WASM).

.dll seria a extensão apropriada e deveria ser mantida como padrão. Ocultar a intenção do arquivo alterando a extensão para .zip não é a solução ideal, pois gera confusão. Provavelmente seria melhor não usar nenhuma extensão e nomear o arquivo como somedllname_v1_0_0_4321_ab5e8d5b97d141aca3c54776e82d2355
(ou seja, nome do projeto, versão do arquivo e um hash SHA-256)

Um problema maior é que os scanners AV atuais (heuristicamente) detectam rotinas que buscam código adicional. Não há solução real para esse problema até que os fornecedores de AV façam adaptações para suportar .wasm . Portanto, é melhor entrar em contato com os fornecedores de AV e relatar como um bug, para que eles possam corrigi-lo.

Eu concordo 100% com @MovGP0. Os fornecedores de AV precisam atualizar seu software. Eles usam algoritmos diferentes para detectar códigos maliciosos e esses algoritmos precisam ser inteligentes o suficiente para bloquear vírus e permitir software legítimo. Acredito que todo scanner AV moderno verifica o conteúdo de cada arquivo, zip, 7z, rar, etc. Alterar a extensão do nome do arquivo ou o pseudo-empacotamento não é uma solução de longo prazo.

Parece bobo que isso seja um problema porque o bloqueio é devido a motivos herdados. Existem dois cenários com o Blazor para DLLs:

  1. Código IL em execução interpretado em um navegador: Nesse caso, o código IL na DLL é apenas DADOS brutos e não é mais uma ameaça do que um arquivo JPG ou XML que o navegador está processando. Isso ocorre porque o IL baixado está sendo completamente interpretado. O produto de segurança não tem mais negócios com isso do que com qualquer arquivo GIF, XML ou TXT que um site esteja processando.

ou (no futuro)

  1. Código IL compilado AOT para .wasm. Nesse caso, o código IL geraria .WASM e o único problema deveria ser como esses produtos de segurança lidam com arquivos .wasm.

Outro ponto sobre “empacotar” é que isso é exatamente o que muitos frameworks javascript já fazem para reduzir solicitações ao servidor: ter algum script do lado do servidor combinando dinamicamente vários scripts separados arquivados em um único arquivo. Eu pessoalmente adoraria ver algum manipulador inteligente do lado do servidor que pudesse combinar dinamicamente 20 DLLs pequenas (5k) para reduzir as solicitações iniciais do servidor e me permitir, como desenvolvedor, opcionalmente, ter algum controle sobre isso durante o carregamento da página.

Mas acho que a equipe do Blazor tem nosso feedback agora e fará o que for sensato e/ou fornecerá opções.

Ressaltarei que uma visão de que devemos esperar até que todos atualizem seus produtos de segurança não funciona porque não são apenas produtos , mas grandes empresas existentes que não farão alterações de configuração realistas em sua infraestrutura de rede. Isso realmente prejudicará o uso do Blazor porque não se trata apenas de scanners AV, trata-se de tentar informar a equipe de um departamento de TI de uma grande empresa como a News Corporation ou a Bhp Billiton para fazer alterações na configuração da rede. A cultura está mudando, mas ainda há muitos funcionários nesses departamentos que simplesmente não se importariam (ou sorririam ativamente) se isso causasse problemas de Blazor ☹.

  • Acredito que todo scanner AV moderno verifica o conteúdo de cada arquivo, zip, 7z, rar, etc.
    Minha experiência pessoal na última década é que, quando em formato .zip, tudo geralmente está bem. As coisas geralmente são bloqueadas se os arquivos forem .exe ou .dll. Dentro de um arquivo zip, a maioria dos produtos bloquearia o arquivo zip apenas se detectar uma assinatura real conhecida de malware dentro do arquivo zip (não apenas porque há um .dll dentro). Mas reconheço que cada produto é diferente, então não há garantias aqui.
    De: Andrzej-W [email protected]
    Enviado: quarta-feira, 6 de junho de 2018 05:38
    Para: aspnet/Blazor [email protected]
    Cc: jiggyswift [email protected] ; Comente [email protected]
    Assunto: Re: [aspnet/Blazor] Considere alterar URLs de assemblies .NET para não terminar com .dll (#172)

Eu concordo 100% com @MovGP0 https://github.com/MovGP0 . Os fornecedores de AV precisam atualizar seu software. Eles usam algoritmos diferentes para detectar códigos maliciosos e esses algoritmos precisam ser inteligentes o suficiente para bloquear vírus e permitir software legítimo. Acredito que todo scanner AV moderno verifica o conteúdo de cada arquivo, zip, 7z, rar, etc. Alterar a extensão do nome do arquivo ou o pseudo-empacotamento não é uma solução de longo prazo.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/aspnet/Blazor/issues/172#issuecomment-394834055 ou silencie o tópico https://github.com/notifications/unsubscribe-auth/AmF6aIkiXWAVe282A0YSh_a7bgmGPGN7ks5t5t4OgaJpZM4SUpej .

Duas pessoas da Equipe de Segurança Corporativa vieram à minha mesa depois que eu naveguei no site de exemplo do mono wasm , que baixa um hello.exe . Acho que foi escolhido pelo "Symantec Endpoint Protection".

Obrigado Harry. Eles lhe deram tempo para embalar tudo em uma caixa antes de levá-lo para fora da porta? Melhor história até agora.

De: Harry McIntyre [email protected]
Enviado: quinta-feira, 7 de junho de 2018 20:36
Para: aspnet/Blazor [email protected]
Cc: jiggyswift [email protected] ; Comente [email protected]
Assunto: Re: [aspnet/Blazor] Considere alterar URLs de assemblies .NET para não terminar com .dll (#172)

Duas pessoas da equipe de segurança corporativa vieram à minha mesa depois de navegar no site de exemplo mono wasm https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.hipbyte.com % 2F% 257Elrz% 2Fmono-WASM-Olá & dados = 02% 7C01% 7C% 7Cf21af207f881447e8d5d08d5cc627621% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C636639645608861860 sdata = Cp9wUKXElAX4z39zarw0DQOlhHo3ZY0MtSRdz8j5YDw% 3D & reservados = 0 , o qual transfere uma hello.exe. Acho que foi escolhido pelo "Symantec Endpoint Protection".


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faspnet%2FBlazor%2Fissues%2F172%23issuecomment-395374377&data=02 % 7C01% 7C% 7Cf21af207f881447e8d5d08d5cc627621% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C636639645609018105 sdata = A9rl39HzRP7w9mzRkqPKrG4zsHJKkVIy2jwJ0e9nc3g% 3D & reservados = 0 , ou cortar o fio https://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub. COM% 2Fnotifications% 2Funsubscribe-auth% 2FAmF6aG9lvmy2g93BQQmI-5mbrGICanCxks5t6QIPgaJpZM4SUpej & dados = 02% 7C01% 7C% 7Cf21af207f881447e8d5d08d5cc627621% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C636639645609018105 sdata = yZhLQXXqqp0hLEtD3mTowdoI4EpBu5qNNR0UI4tZDm8% 3D & reservados = 0 .

Pode ser útil:

De https://www.cisco.com/c/en/us/td/docs/security/firepower/623/configuration/guide/fpmc-config-guide-v623/file_policies_and_advanced_malware_protection.html

O sistema pode inspecionar até três níveis de arquivos aninhados abaixo do arquivo mais externo (nível 0) se o arquivo for um arquivo (como arquivos .zip ou .rar). Você pode inspecionar arquivos tão grandes quanto o Tamanho máximo do arquivo para armazenar a configuração de controle de acesso avançado.
Se algum arquivo individual corresponder a uma regra de arquivo com uma ação de bloqueio, o sistema bloqueará todo o arquivo, não apenas o arquivo individual. O sistema também pode bloquear arquivos que excedam um nível especificado de aninhamento ou cujo conteúdo seja criptografado ou não possa ser inspecionado.

Outro link (role até "Recurso de tipos de arquivos"):
https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk105318&js_peid=P-14d3e69bf07-10000

Encontrei uma solução alternativa descrita aqui: https://remibou.github.io/Change-Blazor-DLL-extension-with-ASPNET-Core/. Pode não ajudar para todos os casos e AV, mas é um ponto de partida.

@RemiBou cara... isso é incrível :) Bom truque em usar URLRewrite para isso! 👍

No tópico da substituição da extensão dll, gostaria de empurrar para a extensão wasm (mesmo que não tecnicamente correta) porque as páginas do github, cloudflare e provavelmente a maioria das CDNs já estão lidando com a compactação para "application/wasm", mas não para "application/ octet-stream", portanto, um aplicativo Blazor padrão pesa cerca de 3,2 MB, tendo apenas mono.wasm compactado com brotli. No final, as bibliotecas Blazor já serão wasm de qualquer maneira quando a compilação AOT estiver em vigor, não é?

Acabei de testar o truque @RemiBou usando a extensão wasm e renomeando as dlls antes de enviá-las para as páginas gh e agora uma atualização a frio equivale a 1,9 MB como deveria ser: ótimo! Obrigado @RemiBou!!

Mas meu antivírus Avast inicialmente enlouqueceu porque todos aqueles arquivos wasm falsos foram infectados com DRep e eu recebi a mesma janela de alerta que @jorisvergeer . Após uma pesquisa rápida, acho que o problema pode ser resolvido com as bibliotecas falsas do wasm baixadas de um site com uma reputação melhor do que o meu subdomínio criado recentemente, mas estou apenas supondo agora.

Para obter um exemplo de como um aplicativo blazor do lado do cliente falha dentro de uma corporação, consulte o arquivo PDF anexado. Este é um problema frustrante do ponto de vista de um desenvolvedor, pois estamos à mercê de algo que está fora do nosso controle.

Seria incrível se pudéssemos tentar pré-compilar as dlls para arquivos wasm e, em seguida, poder baixá-los. (espero que funcione)

403proibido.pdf

A mensagem 403 proibido no post anterior foi gerada pelo nosso firewall zscaler.

Qual é a melhor maneira de trazer visibilidade e prioridade a esse problema para que ele seja considerado em um sprint futuro?

@rynowak @SteveSandersonMS @mkArtakMSFT Precisamos ter certeza de que temos uma solução para isso, então vamos para o marco do blazor-wasm.

Criei um documento descrevendo a solução que uso agora para contornar as dlls bloqueadas pelo zScaler.

https://github.com/jucchytil/CSBNotes/blob/master/Notes.md

Suspeito que talvez precisemos considerar uma solução semelhante para arquivos WASM, pois existe a possibilidade de que os fabricantes de firewalls demorem um pouco para aceitar os arquivos wasm como seguros nos próximos dois anos.

Estou realmente ansioso pelo PublishSingleFile/PublishTrimmed/TargetFramework=wasm, então temos apenas um único arquivo relativamente pequeno para gerenciar no service worker.

Seus pensamentos?

Obrigado Dan!
Sou grato por isso estar recebendo alguma atenção.
Publiquei minha solução provisória em https://github.com/aspnet/AspNetCore/issues/5477
Espero que possa ajudar de alguma forma.
João

De: Daniel Roth [email protected]
Enviado: sexta-feira, 11 de outubro de 2019 10:33
Para: aspnet/AspNetCore [email protected]
Cc: jucchytil [email protected] ; Comente [email protected]
Assunto: Re: [aspnet/AspNetCore] Considere alterar URLs de assemblies .NET para não terminar com .dll (#5477)

@rynowak https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frynowak&data=02%7C01%7C%7Cecf83fca357f4abe690d08d74e604c75%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637064047810603291&sdata=N5o8HJ7%2FM1UInuoFp1HXbY9AqDhM8BCm % 2F0IGZujyqqI% 3D & reservados = 0 @SteveSandersonMS https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSteveSandersonMS&data=02%7C01%7C%7Cecf83fca357f4abe690d08d74e604c75%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0 % & 7C637064047810613296 sdata = vDuSWWEJ0CGf7ex7TStTMrHH1E27V5eza% 2FMJKIkr% 2BeY% 3D & reservados = 0 @mkArtakMSFT https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FmkArtakMSFT&data=02%7C01%7C%7Cecf83fca357f4abe690d08d74e604c75 %7C84df9e7fe9f640afb435aaaaaaaaaaa%7C1%7C0%7C637064047810623307&sdata=ltzBUDC4c8o9kPvFmBlIOHN1B%2BUI2Fj%2FspG4WCIo%2BD8%3D&reserved=0 Precisamos ter certeza de que temos uma solução para isso, então passando para o marco do blazor-wam.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Faspnet%2FAspNetCore%2Fissues%2F5477%3Femail_source%3Dnotifications%26email_token % 3DAEBYRE4UUUJDL3KHNPOYYJ3QOCMCVA5CNFSM4GK4V5L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBALS2Y% 23issuecomment-541112683 & dados = 02% 7C01% 7C% 7Cecf83fca357f4abe690d08d74e604c75% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C637064047810633312 sdata = qxqf5LstFcAUsEgSImIxMMOw33sNOgku09qw% 2FJp3Z18% 3D & reservados = 0 , ou de cancelamento https://eur01.safelinks.protection.outlook.com/?url= https% 3A% 2F% 2Fgithub.com% 2Fnotifications% 2Funsubscribe-auth% & 2FAEBYRE2MQUF65CHXQD54OWDQOCMCVANCNFSM4GK4V5LQ dados = 02% 7C01% 7C% 7Cecf83fca357f4abe690d08d74e604c75% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C637064047810643323 sdata = yx154tNWkGvXlXbVJNjvswed9hG0zr91HFqIhMVLCfo% 3D & reservados = 0 .

Apenas seguindo uma solicitação de Daniel Roth em seu blog, que me pediu para postar o nome do meu provedor de hospedagem aqui, para que você possa testar esse problema. O comentário do blog pode ser encontrado aqui:- https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/#comment -955

O provedor de hospedagem em questão é o infinityfree.net. Eles são gratuitos, então será fácil experimentar!

Basicamente, ao fazer o upload do site, seu servidor excluirá cerca de metade das DLLs da pasta _framework\bin\. Originalmente, pensei que algo havia dado errado e tentei repetidamente fazer o upload dos arquivos ausentes. Eventualmente, eles pareciam “grudar”, como se seu servidor tivesse desistido de verificar os novos arquivos e, um dia depois, ainda estivessem lá (embora talvez eles acabem sendo varridos).

De qualquer forma, adicione meu voto para uma solução adequada, como renomear as DLLs.

@andyste1 Obrigado pela informação. Você verificou e confirmou que, se os arquivos forem renomeados, eles não serão excluídos? Se a empresa de hospedagem estiver fazendo isso com base no conteúdo e não no nome, renomear não seria necessariamente uma solução.

Renomear pode não ajudar muito - já existe uma solução para isso.
Para mim, o problema é o formato PE do arquivo - o programa antivírus, Sophos, bloqueará os arquivos toda vez que eu o renomear, pois também escaneou o conteúdo do arquivo. Felizmente, o Sophos permite o download de arquivos DLL (formato PE) via HTTPS (não HTTP).

@lertoo estamos discutindo a possibilidade de remover os metadados PE dos assemblies para reduzir o tamanho, mas também pode ajudar com esse problema.

Versão do antivírus Norton deste problema: https://forums.asp.net/t/2161027.aspx

É muito provável que não apenas a extensão do arquivo, mas o cabeçalho do arquivo também cause um problema com algum software paranóico. A ofuscação não ajudará quando o problema for com o cabeçalho, exceto que o JS que está iniciando o Blazor VM não os está substituindo manualmente na memória de alguma forma, mas é um tiro no escuro.

Minha solução atual é fornecer uma versão codificada em Base64 de cada DLL no meu pipeline de CI/CD, usando um service worker para detectar o 403 do firewall para a DLL, baixando a versão Base64 do arquivo de texto DLL e convertendo Base64 de volta para DLL no service worker antes de armazená-lo em cache no navegador.

Seria curioso ver se o problema desaparece se pudéssemos converter as DLLs em arquivos WASM, pois o arquivo WASM parece passar bem para mim, mas pode não ser verdade para todos os firewalls.

Outro falso positivo do Blazor WebAssembly:

image

Estou esperando desde o início de 2018 para que esse problema seja resolvido :) eu amo/amei o blazor, mas este parecia uma rolha de show em potencial, se as dlls não pudessem ser alteradas

@JonnyGibson Obrigado por sua paciência! Estamos trabalhando para ter algum tipo de resolução para esse problema para o próximo lançamento em maio deste ano.

Este é um problema bastante longo, então tentei resumir tudo isso aqui:

Antivírus

  • NOD32 (ESET)
  • AVG v. 18.1.3044 (+3)
  • Verificação de tráfego da Web
  • Avast (+3)
  • Proteção de endpoint da Symantec
  • z Scaler

Renomear propostas

  • .blasor (+35)
  • .bin (+3)
  • .lib
  • .ilasm (+6)
  • .net (+14)
  • .wam (-8)
  • [personalizado] (+1)
  • [Nenhum]

Solução alternativa que as pessoas usam

  • Renomear extensão
  • DLLs de codificação BASE64

Notas gerais

  • .DLLs e .EXEs são extensões que muitas empresas bloqueiam no nível do firewall, como uma política.
  • Houve relatos de extensões renomeadas também sendo relatadas por software antivírus

@mkArtak
Você também pode incluir o zScaler em algum lugar no seu resumo, pois é isso que estava bloqueando meus downloads.

Uma abordagem para testar é converter todos os executáveis ​​em arquivos wasm, pois não me lembro de o zScaler ter problemas com eles.

Mudei temporariamente para o Angular até que o blazor do lado do cliente resolva esses problemas e tenha melhores tempos de download inicial.

Eu gastei muito tempo tentando fazer o blazor do lado do cliente funcionar e decidi esperar até que a plataforma amadurecesse um pouco mais.
https://github.com/jucchytil/CSBNotes/blob/master/Notes.md

@javiercn vamos acompanhar o trabalho de renomeação da extensão de arquivo aqui e vou registrar um problema separado para acompanhar os provedores de antivírus em relação a isso.

AÇÃO NECESSÁRIA

🎫
Acabei de criar um novo problema em que tentaremos coletar todos os softwares específicos que bloqueiam aplicativos Blazor WASM. Forneça informações específicas para o seu caso, conforme descrito aqui: https://github.com/dotnet/aspnetcore/issues/19552

Em uma nota lateral, CDNs como páginas do github e cloudflare estão compactando os ativos com uma extensão wasm pronta para uso enquanto estão servindo uma versão descompactada para os arquivos dll. Se bem me lembro, a CDN do Azure deve se comportar da mesma maneira.

Nós experimentamos isso hoje. Ter a restrição de download de DLL levantada não será uma opção. Não apenas para nós, mas é muito improvável que nossos clientes removam essa restrição também - então realmente precisamos de uma correção para isso, caso contrário, nosso projeto Blazor está morto (o empregador não está disposto a usar o lado do servidor).

Acredito que nosso firewall seja um Palo Alto.

@mrpmorris você pode colocar os detalhes em https://github.com/dotnet/aspnetcore/issues/19552 , pois é aqui que os coletamos para que possamos envolver os fornecedores.

@mrpmorris mudou a extensão resolveu o problema no seu cenário?

Olá @javiercn

Acabei de atualizar esse problema. Parece que mudar para https funcionou para nós, o que faz sentido. Não podemos ter certeza de que nossos clientes estão dispostos a ter a mesma exceção.

Ficarei feliz em verificar a opção de renomeação. Você tem um link para instruções sobre como fazer o Blazor funcionar com extensões .wasm ou algo mais? No momento, estou apenas clicando com o botão direito do mouse no meu projeto de servidor web e escolhendo Publish diretamente para um aplicativo Web do Azure.

@mrpmorris Você pode verificar as instruções aqui
https://github.com/dotnet/aspnetcore/pull/19558#issuecomment -594461263

@mrpmorris Observe que essas instruções se aplicam apenas às nossas compilações 3.2.0-preview2 mais recentes e a atualização de 3.2.0-preview1 exigirá um pouco de trabalho usando etapas que ainda não publicamos. Você pode querer esperar até o lançamento no final deste mês.

@danroth27 Acho que você ainda não publicou preview2... :)

Você pode tentar isso com as compilações noturnas seguindo as instruções aqui, se optar por fazer.

Eu recomendo que você limpe seus caches de pacotes nuget antes e depois, se você optar por fazer isso. Leve em consideração que limpar os caches afetará toda a máquina (todos os aplicativos nessa máquina)

Vou esperar a versão p2 ser lançada e depois testá-la. Obrigado!

@mrpmorris 3.2 Preview 2 já está disponível! As etapas sugeridas em https://github.com/dotnet/aspnetcore/pull/19558#issuecomment -594461263 para renomear os arquivos funcionam para você?

Oi pessoal!

No recente lançamento do Blazor WebAssembly 3.2 Preview 2 , fizemos algumas alterações para facilitar a renomeação dos arquivos .dll em seu aplicativo como forma de lidar com proxies/firewalls/software antivírus que interferem nos aplicativos Blazor WebAssembly. Gostaríamos que as pessoas que estão enfrentando esse problema experimentassem as etapas abaixo na saída publicada de seus aplicativos Blazor WebAssembly (independentes ou hospedados em ASP.NET Core) e vejam se isso ajuda:

janelas

  • Abra um prompt do PowerShell no diretório wwwroot de sua saída publicada (por exemplo, em yourapp\bin\Release\netstandard2.1\publish\wwwroot
  • Execute as duas linhas a seguir:
dir .\_framework\_bin | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
((Get-Content .\_framework\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content .\_framework\blazor.boot.json

Linux/macOS

  • Abra um terminal no diretório wwwroot de sua saída publicada (por exemplo, em yourapp/bin/Release/netstandard2.1/publish/wwwroot
  • Execute as duas linhas a seguir:
for f in _framework/_bin/*; do mv "$f" "`echo $f | sed -e 's/\.dll\b/.bin/g'`"; done
sed -i 's/\.dll"/.bin"/g' _framework/blazor.boot.json

Experimente estes passos e diga-nos como correu. Se você ainda tiver problemas, por favor nos avise! Temos algumas outras idéias de coisas para tentar, se necessário.

Obrigado!

Isso funcionou para mim. Embora eu tenha que ajustar minha etapa de publicação no Azure DevOps e desativar para que ela gere um zip no final.

No meu caso:

- task: DotNetCoreCLI<strong i="7">@2</strong>
  displayName: 'dotnet publish'
  inputs:
    command: 'publish'
    publishWebProjects: false
    zipAfterPublish: false
    projects: |
      **/ApplySupportTool.Server.csproj
    arguments: '--configuration $(buildconfiguration)  --output $(Build.ArtifactStagingDirectory)'

- task: PowerShell<strong i="8">@2</strong>
  displayName: Change Outputname
  inputs:
    targetType: 'inline'
    workingDirectory: $(Build.ArtifactStagingDirectory)\ApplySupportTool.Server\wwwroot
    script: |
         dir .\_framework\_bin | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
         ((Get-Content .\_framework\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content .\_framework\blazor.boot.json

@NPadrutt Funcionou em que sentido? No sentido de que você observou conclusivamente que seu site não estava funcionando antes (devido a algum tipo de antivírus ou firewall), e a mudança de URLs resolveu isso? Se for esse o caso, você poderia postar detalhes de qual antivírus/firewall/etc estava causando problemas para você antes em https://github.com/dotnet/aspnetcore/issues/19552? Obrigado!

@SteveSandersonMS bem, eu já tinha o trabalho por meio do reescritor. Após a atualização para o 3.2 preview 2 esse não funcionou mais e o aplicativo foi bloqueado novamente. Com o acima está funcionando novamente.

Infelizmente não posso dizer qual firewall temos em nossa rede e não acho que o AntiVirus (McAffee) tenha impacto aqui, pois trabalhando localmente funcionou sem problemas.

Alguém no meu escritório testou positivo para COVID-19, então parece que meu escritório ficará fechado por algumas semanas - o que significa que não acessarei arquivos pelo firewall. Desculpe.

@mrpmorris Sem problemas. Fique seguro!

Oi pessoal!

No recente lançamento do Blazor WebAssembly 3.2 Preview 2 , fizemos algumas alterações para facilitar a renomeação dos arquivos .dll em seu aplicativo como forma de lidar com proxies/firewalls/software antivírus que interferem nos aplicativos Blazor WebAssembly. Gostaríamos que as pessoas que estão enfrentando esse problema experimentassem as etapas abaixo na _saída publicada_ de seus aplicativos Blazor WebAssembly (independentes ou hospedados no ASP.NET Core) e vejam se isso ajuda:

@danroth27

Executei o script (desenvolvo no Windows, mas implemento de um ambiente Linux para outro ambiente Linux, então usei o script Linux fornecido) e ele implantou com os novos nomes, e ao carregar a página parece estar carregando os arquivos com as novas extensões bem, e o aplicativo funciona. No nosso caso, o Avast não sinaliza mais o aplicativo e não bloqueia mais os downloads.

Devido à situação de pandemia, ainda demorará um pouco para verificarmos a situação do firewall corporativo.

Este é um passo bastante simples para adicionar à compilação e parece não ter desvantagens, então vamos começar a usá-lo.

Obrigado!

@danroth27 isso será o padrão em algum momento, então não precisamos fazer esta etapa? Existe realmente algum motivo para não apenas mover para .bin ou nenhum tipo de arquivo como padrão, em vez de exigir que todos façam isso se houver um problema geral com o tipo de arquivo .dll?

Existe alguma chance de um verificador de vírus verificar o arquivo mesmo que não seja ".dll" para ver se é um arquivo dll?

@danroth27 @SteveSandersonMS
Recebi muitos erros no console do navegador relacionados à falha de integridade ou arquivo não encontrado:

_framework/_bin/Blazored.LocalStorage.dll:1 Failed to load resource: the server responded with a status of 404 ()
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
Failed to find a valid digest in the 'integrity' attribute for resource '<URL>' with computed SHA-256 integrity '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='. The resource has been blocked.
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/BlazorStrap.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Blazor.HttpClient.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Components.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.Authorization.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.WebAssembly.Authentication.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Authorization.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.AspNetCore.Components.Web.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.Forms.dll:1 Failed to load resource: the server responded with a status of 404 ()
_framework/_bin/Microsoft.AspNetCore.Components.WebAssembly.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
admin:1 Unknown error occurred while trying to verify integrity.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
blazor.webassembly.js:1 Error: Failed to start platform. Reason: TypeError: Failed to fetch
    at blazor.webassembly.js:1
    at blazor.webassembly.js:1
    at Object.throw (blazor.webassembly.js:1)
    at u (blazor.webassembly.js:1)
d.printErr @ blazor.webassembly.js:1
_framework/_bin/Microsoft.AspNetCore.Metadata.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Bcl.HashCode.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.CSharp.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Caching.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.EntityFrameworkCore.Relational.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Caching.Memory.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Configuration.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.DependencyInjection.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.DependencyInjection.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Identity.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Identity.Stores.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Logging.Abstractions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Logging.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Options.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.Extensions.Primitives.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Microsoft.JSInterop.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Mono.Security.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Services.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/mscorlib.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/MovingPicturesEvents.Web.Client.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/netstandard.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/Radzen.Blazor.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Collections.Immutable.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.ComponentModel.DataAnnotations.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Data.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Diagnostics.DiagnosticSource.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Linq.Dynamic.Core.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Net.Http.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Net.Http.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Numerics.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Runtime.CompilerServices.Unsafe.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Text.Encodings.Web.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Text.Json.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Transactions.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Xml.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/System.Xml.Linq.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/WebAssembly.Bindings.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.
_framework/_bin/WebAssembly.Net.Http.dll:1 Failed to load resource: the server responded with a status of 404 ()
admin:1 Unknown error occurred while trying to verify integrity.

Eu tentei as etapas @danroth27 mencionadas no Windows e em um contêiner do Linux Docker com os mesmos resultados.

Usando 3.2 Visualização 4.

@radderz Esse problema parece não afetar todos os ambientes - é específico para determinados ambientes e geralmente é baseado em políticas. Se mudarmos para uma extensão de arquivo diferente, não há garantia de que isso funcionará para todos. Portanto, em vez de alterar o padrão para todos, estamos avançando com o plano em que os clientes que atingem esse problema podem controlar as próprias extensões de arquivo usando a técnica fornecida acima.

Certamente é possível que software antivírus/proxies/firewalls possam fazer uma inspeção mais profunda dos arquivos do que apenas olhar para a extensão do arquivo. Até agora não ouvimos falar de ninguém sendo bloqueado por isso ainda. Se isso se tornar um problema, faremos outras mitigações.

@mihaimyh Parece que você pode ter uma política de segurança de conteúdo mal configurada?

@mihaimyh Parece que você pode ter uma política de segurança de conteúdo mal configurada?

@danroth27 Você pode, por favor, ser mais explícito? De qual política de segurança você está falando? Recebi esses erros mesmo no ambiente de desenvolvimento, onde acredito que não há política de segurança implementada.

@mihaimyh Desculpe, acho que confundi política de segurança de conteúdo com integridade de sub-recurso. Parece que o navegador está tentando impor que os hashes dos ativos baixados correspondam aos hashes especificados na marcação por meio do atributo integrity , mas o atributo integrity está ausente. Isso também pode estar relacionado a como o Blazor baixa e armazena em cache os recursos do aplicativo, que usa uma estratégia semelhante baseada em hash para verificar se os arquivos foram alterados.

@mihaimyh Desculpe, acho que confundi política de segurança de conteúdo com integridade de sub-recurso. Parece que o navegador está tentando impor que os hashes dos ativos baixados correspondam aos hashes especificados na marcação por meio do atributo integrity , mas o atributo integrity está ausente. Isso também pode estar relacionado a como o Blazor baixa e armazena em cache os recursos do aplicativo, que usa uma estratégia semelhante baseada em hash para verificar se os arquivos foram alterados.

@danroth27 Ok, e acredito que posso ignorar a verificação de integridade adicionando

<BlazorCacheBootResources>false</BlazorCacheBootResources>

para meus arquivos .csproj, mas ainda recebi o evento 404 com a verificação de integridade desabilitada.

@mihaimyh Se você puder reproduzir isso de maneira confiável, sugiro abrir um novo problema para esse problema, pois não parece estar relacionado ao problema de extensões de arquivo. Isso tornará mais fácil envolver as pessoas certas.

Certifique-se de adicionar algo assim em seu script "dll renomear"

# Remove compressed versions of blazor.boot.json because it still looks for .dll files
Remove-Item ".\_framework\blazor.boot.json.gz"
Remove-Item ".\_framework\blazor.boot.json.br"

Na maioria das vezes, o blazor.boot.json pré-compactado será baixado em vez do blazor.boot.json "fixo" fazendo solicitações aos arquivos ".dll" em vez dos arquivos ".bin" que causam o problema de integridade.

Então você tem que remover os arquivos json compactados ou recomprimir o blazor.boot.json, mas não acho que vale a pena passar por esse incômodo.

Espero que um dia tudo isso possa ser tratado pelo framework com um sinalizador no csproj, por exemplo

<BlazorBinariesExtension>.bin</BlazorBinariesExtension>

Oi pessoal. Neste ponto, documentamos a estratégia que recomendamos para alterar a extensão do arquivo para os assemblies .NET publicados usando scripts. Acho que a sugestão de @stavroskasidis ainda é boa para fornecer uma maneira simples e integrada de fazer isso, então abri https://github.com/dotnet/aspnetcore/issues/21489 para rastrear a sugestão. Neste ponto, acho que estamos prontos para encerrar esta questão. Obrigado a todos pelo feedback detalhado fornecido!

Pelo que vejo a renomeação de .dll para .bin deve ser feita também em wwwroot/service-worker-assets.js e remover ou recompactar wwwroot/service-worker-assets.js.br e wwwroot/service-worker-assets.js.gz , caso contrário há problemas de integridade em console do navegador.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

snebjorn picture snebjorn  ·  3Comentários

markrendle picture markrendle  ·  3Comentários

Kevenvz picture Kevenvz  ·  3Comentários

guardrex picture guardrex  ·  3Comentários

ipinak picture ipinak  ·  3Comentários