Aspnetcore: Considere cambiar las URL de los ensamblajes .NET para que no terminen con .dll

Creado en 27 feb. 2018  ·  104Comentarios  ·  Fuente: dotnet/aspnetcore

Quería ver la demostración en https://blazor-demo.github.io/ y mi firewall corporativo bloqueó MicroApp.dll , mientras que otros archivos DLL se descargaron correctamente. Dado que una gran cantidad de software es paranoico acerca de la descarga/transferencia de archivos binarios de Windows, ¿tal vez valga la pena ofuscarlos un poco? ¿O, al menos, cambiar el nombre?

Components Big Rock area-blazor blazor-wasm enhancement

Comentario más útil

¿Qué tal YourAssembly.blazor ? Podría ser una buena manera de promocionar el proyecto (muy, muy ligeramente) si algún desarrollador web busca en las herramientas de desarrollo para ver cómo se creó el sitio. O tal vez solo soy yo que a veces ve que un sitio fue construido con Vue.js o lo que sea y piensa "oh, genial" :)

Todos 104 comentarios

Eso es interesante, gracias por informarnos. Consideraremos cambiar las URL a YourAssembly_dll o algo así, aunque si lo hacemos de forma predeterminada puede depender de si obtenemos más informes sobre esto y si podemos establecer que se debe al nombre o más profundo. inspección del contenido de la carga útil.

@SteveSandersonMS solo para dejar mi 2c aquí. No son solo los cortafuegos corporativos los que sufren el .dll-fobia . Algunos antivirus locales también tienen este mismo problema.

@galvesribeiro tiene razón al no mencionar que si no estuviera familiarizado con lo que está pasando y viera un sitio web tratando de descargar un DLL, ¡me iría de allí! Considere la percepción al abordar esto :)

@joeizy sí, estoy totalmente de acuerdo contigo en que, en la mayoría de los casos, bloquear dlls es lo correcto. Es por eso que estamos hablando de cambiarle el nombre, ya que estamos seguros de lo que estamos haciendo...

¿Qué tal YourAssembly.blazor ? Podría ser una buena manera de promocionar el proyecto (muy, muy ligeramente) si algún desarrollador web busca en las herramientas de desarrollo para ver cómo se creó el sitio. O tal vez solo soy yo que a veces ve que un sitio fue construido con Vue.js o lo que sea y piensa "oh, genial" :)

¿Qué tal simplemente .bin?

También me gusta .bin o .blazor.

+1 “.bin”

.lib o .bin o .ilasm?

Para que podamos tomar una decisión informada sobre esto, realmente ayudaría si tuviéramos pasos de reproducción aproximados (o al menos alguna pista en esa dirección). Necesitamos entender específicamente si se trata de un problema de nombres o de contenido, por ejemplo.

¿Qué producto de firewall específico se sabe que bloquea .dll , ya sea de forma predeterminada o en una configuración común? ¿Puede indicarme algo que pueda instalar y probar? O si no, ¿tiene al menos el nombre y tal vez enlaces a alguno de sus documentos de configuración?

@SteveSandersonMS Creo que no es un producto en particular. Múltiples productos, especialmente los más utilizados por las empresas, tienen ajustes de configuración de marea en los tipos de archivos, especialmente los comunes como .exe, .dll, .so, etc.

El nombre en sí es el primer bloqueador pero, una forma de _reducir_ este problema, es de la misma manera que hemos tratado con ClickOnce desde .Net 2.0. Asambleas de firmas.

El problema es que (1) no es barato, (2) el proceso para obtener esos certificados, incluso si puede pagarlos, es MUY complejo e incluso no está disponible en algunos países e incluso si lo obtiene, (3) el certificado para la empresa/desarrollador suele tardar un tiempo en ser _confiable_ por la base de datos del software antivirus.

Para los ensamblados publicados por MSFT, no es una gran noticia, ya que sabemos que todos los ensamblados enviados, incluso los OSSed, están firmados en código por la política de corpnet. Pero piense en otros desarrolladores, nuevas empresas y proyectos de OSS. Todos sufrirán con eso.

Recuerdo que en los viejos tiempos, cuando Silverlight era una cosa, si queríamos descargar ensamblados a pedido, los poníamos en un archivo xap (que en la práctica es un archivo zip) y luego los extraíamos con
https://msdn.microsoft.com/en-us/library/cc190632 (v=vs.95).aspx

No estoy seguro de si hubo una razón para eso (aparte de combinar múltiples dlls en un solo archivo). Supongo que el equipo de Silverlight debería estar familiarizado con los problemas del firewall, si los hay.

El problema con la agrupación es que si necesita actualizar 1 de esos dlls, se debe actualizar todo el paquete... El modelo Silverlight no admite caché ni ancho de banda...

No estoy sugiriendo usar paquetes para Blazor. Solo digo que, además de la función de agrupación, tal vez el equipo de Silverlight estaba usando archivos xap para evitar problemas con el cortafuegos. Eso es solo una suposición, por supuesto.

Mantenga ".net" como extensión

Estamos bien metidos en los reinos de bikeshedding en esto ahora. Por lo tanto, estoy solicitando específicamente ejemplos concretos de productos de firewall reales que tengan problemas con esto.

Creo que no es un producto en particular.

No obstante, ayudarían los ejemplos de productos particulares y bajo qué configuraciones sucede esto.

@SteveSandersonMS Entendí esa parte. El punto es que arreglar el problema para 1 antivirus/firewall en particular no cubrirá a todos los demás, ya que todos sabemos que cada uno tiene su propia configuración heurística, base de datos, para eso. El único caso que podría cubrir tanto las reglas de nombre como de firma para todo es:

  1. Firmar las asambleas como de costumbre y;
  2. Asegúrese de que el nombre no esté en la lista negra _predeterminada_

@SteveSandersonMS He visto algunos problemas al usar NOD32 de ESET y he visto que el escáner activo bloquea la descarga de algunos archivos binarios en silencio, estos parecen ser bibliotecas de enlace dinámico que no tienen una firma digital.

Gracias por la información @grahamehorner. ¿Sabes aproximadamente cuáles serían los pasos de reproducción? Si acabo de instalar NOD32 en una máquina con Windows (desechable), ¿es suficiente para que no pueda abrir https://blazor-demo.github.io/? ¿O se necesita alguna configuración adicional?

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

Los perfiles de bloqueo de archivos le permiten identificar tipos de archivos específicos que desea bloquear o monitorear. Para la mayoría del tráfico (incluido el tráfico en su red interna), querrá bloquear los archivos que se sabe que contienen amenazas o que no tienen un caso de uso real para cargar/descargar. Actualmente, estos incluyen archivos por lotes, DLL, archivos de clase Java, archivos de ayuda, accesos directos de Windows (.lnk) y archivos BitTorrent.

@SteveSandersonMS Estoy esperando una reunión con nuestro equipo de administración de TI que administra NOD32 de forma remota y su configuración para averiguar qué (si es que hay algo) han cambiado/personalizado, ya que también recibí un correo electrónico automático de nuestro sistema NOD32 que indica que puede haber violado la política de seguridad corporativa al descargar/instalar software que no es de confianza. Volveré a publicar cuando me entere o tenga información adicional.

Me pregunto si los .dlls podrían/se bloquearían si se empaquetaran en un .nupkg y Blazor los desempaquetara/cargara después de la descarga.

Actualmente, estos incluyen archivos por lotes, DLL, archivos de clase Java, archivos de ayuda, accesos directos de Windows (.lnk) y archivos BitTorrent.

Eso es lo que estoy diciendo... Independientemente del producto, esa es la lista _predeterminada_ de tipos de archivos que cualquier administrador de TI bloquearía en una empresa normal (generalmente no basada en TI)...

Por cierto, si hay alguien del equipo de WPF que trabajó con .xap, puede decirle claramente a cualquiera a qué se enfrentó cuando lanzó "WPF en un navegador" en el pasado y se enfrentó _exactamente_ al mismo problema.

Tomó un tiempo hasta que _todo_ el software antivirus comenzó a _confiar_ en esa extensión.

Tuve el mismo problema. Probó la muestra dentro de una red corporativa. Se informó que un archivo DLL está bloqueado. Básicamente, esto hace que sea imposible demostrar esto a un colega. Conseguir que los archivos DLL se desbloqueen probablemente no sea un buen comienzo.

Mirando la página oficial de las convenciones...
http://webassembly.github.io/spec/core/binary/conventions.html

La extensión recomendada para los archivos que contienen módulos WebAssembly en formato binario es ".wasm" y el tipo de medio recomendado es "aplicación/wasm".

Entonces, parecería que lo primero que debe hacer es cambiar el nombre de los archivos a .wasm, y si aún están bloqueados, entonces el firewall debe desbloquearse.

No creo que cambiar el nombre de los archivos a .wasm sea una buena idea. Las DLL no son módulos Wasm, son ensamblajes .NET que (actualmente) son interpretados por el tiempo de ejecución de Mono Wasm ( leer más ). Solo el tiempo de ejecución Mono es un módulo Wasm. Sin embargo, también voto por cambiar el nombre de las DLL a otra cosa debido a los firewalls, especialmente en escenarios empresariales.

El antivirus AVG versión 18.1.3044 también bloqueó los archivos DLL cuando intenté visitar https://blazor-realworld.azurewebsites.net/

No creo que cambiar el nombre de los archivos a .wasm sea una buena idea. Las DLL no son módulos Wasm, son ensamblajes .NET que (actualmente) son interpretados por el tiempo de ejecución de Mono Wasm (leer más). Solo el tiempo de ejecución Mono es un módulo Wasm.

El problema es cuál sería esa extensión de "algo más" porque no se aplica ninguna de las extensiones existentes (las cargas útiles de .NET MSIL interpretadas directamente en el espacio aislado del navegador son un concepto completamente nuevo en seguridad) mientras que el firewall corporativo ya permite wasm.

El manejo de .xap puede no ser una buena referencia desde el punto de vista de la seguridad porque pasa por alto el entorno limitado de seguridad del navegador a diferencia de wasm.

Sí, los archivos DLL contienen MSIL, por lo que técnicamente es cierto, no son estrictamente binarios. Pero se denominan DLL porque llevan el nombre de las DLL nativas de Win32, aunque solo comparten un fragmento del formato PE y, de todos modos, son en su mayoría diferentes internamente. En la misma línea, wasm es el formato de biblioteca "nativo" para Webassembly, y por la misma razón por la que tenía sentido nombrar las bibliotecas administradas DLL: s (aunque internamente no se parecen en nada a las DLL nativas), puede tener sentido para nombrarlos wasm. Desde una perspectiva de seguridad, DLL implica "ejecución local", mientras que wasm implica "ejecución del navegador". Para cumplir con el formato wasm, tal vez el ensamblado .NET podría incorporarse como datos para convertirlo en un wasm válido con la cadena inicial mágica y todo.

La idea aquí es que hay un análogo: wasm es para MSIL lo que PE es para MSIL: un formato de contenedor contenedor. precedente:

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

El formato binario .NET se basa en el formato de archivo de Windows PE. De hecho, las bibliotecas de clases .NET son PE compatibles con Windows y, a primera vista, parecen ser bibliotecas de vínculos dinámicos (DLL) de Windows o ejecutables de aplicación (EXE). Esta es una característica muy útil en Windows, donde pueden enmascararse como binarios ejecutables nativos y recibir el mismo tratamiento (por ejemplo, carga del sistema operativo, herramientas PE).

Si el modelo Blazor no funciona al 100 % con los firewalls existentes, es casi un problema. Debería fluir a través de todos los cortafuegos sin esfuerzo, como Javascript. Si yo fuera un administrador de firewall, no estoy seguro de querer agregar una nueva entrada en la lista blanca para cada nuevo idioma que tenga su propio formato IL.

Si el modelo Blazor no funciona al 100 % con los firewalls existentes, es casi un problema.

@SteveSandersonMS disculpe si ha respondido esto antes, pero ¿cree que se pueda solucionar?

¡Por supuesto! Cambiaremos las URL o el formato del contenido según sea necesario.

Sería genial si esto pudiera priorizarse para el próximo hito. Realmente disiparía los temores de la gente de que es un obstáculo debido a posibles bloqueos de seguridad corporativos

@JonnyGibson Como Steve mencionó anteriormente, planeamos abordar esto, pero en el espíritu de que Blazor es un proyecto experimental, estamos priorizando el trabajo en este momento que se comprende menos. Estamos bastante seguros de que sabemos cómo abordar este problema.

Aquí hay otro ejemplo:
blazor antivirus

Tal vez una solución sería dejar que el desarrollador defina la extensión para una aplicación hasta que los firewalls y AV agreguen soporte en la lista blanca para cualquier extensión que se decida.

Con respecto a mi comentario anterior sobre permitir que el desarrollador defina la extensión, esto también permitiría a los desarrolladores crear aplicaciones con diferentes extensiones para probar el comportamiento del firewall y del antivirus.

@jonparker @torhovland me parece que, en lugar de definir extensiones que pueden bloquearse o no, debemos encontrar una forma de garantizar que nunca se bloqueen. Nadie va a utilizar un marco que provoque el bloqueo de un sitio web en algunos escenarios (muy probables).

La idea de eliminar la extensión parece razonable y debe intentarse lo antes posible. No he visto ningún otro problema planteado que esté tan cerca como este de ser un éxito sensacional.

La idea de eliminar la extensión parece razonable y debe intentarse lo antes posible.

Para que podamos probar cualquier solución, necesitamos poder reproducir o al menos investigar tantos entornos problemáticos como sea posible. Para ayudarnos con eso, continúe proporcionando detalles sobre sus entornos en los que tiene problemas con el bloqueo de las aplicaciones de Blazor. ¡Gracias a todos los que ya han informado sobre esto!

No he visto ningún otro problema planteado que esté tan cerca como este de ser un éxito sensacional.

A la larga, no estamos demasiado preocupados por este tema. Estamos bastante seguros de que podremos manejar este problema con algún tipo de paquete de aplicaciones o transformación de aplicaciones. Pero estamos retrasando el diseño de una solución hasta que tengamos más datos sobre cuáles son los problemas específicos.

WebSense es la herramienta que utiliza mi red corporativa para controlar el acceso web. Estoy bastante seguro de que el problema que bloquea Blazor es solo su bloqueo explícito de descarga de archivos ejecutables.
https://www.websense.com/content/support/library/web/hosted/admin_guide/exten_block.aspx

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

Puedo confirmar que también tuve experiencia con AVG bloqueando mi sitio web. Mi amigo no podía acceder al sitio web sin desactivar AVG. que yo sepa, usó la configuración predeterminada del antivirus.

La extensión DLL no es un problema... Con la compilación AOT en proceso, las DLL no se distribuirán, ya que entiendo que las DLL se usan para un ciclo de desarrollo más rápido. No pierdas tiempo en esto, haz que AOT funcione, ese es el objetivo.

Un pozo... #897 era un duplicado.

este fue mi error
image

tal vez podamos configurar la extensión como un parámetro en UpdateIndex donde la obtendríamos desde la línea de comando (predeterminado "dll"): https://github.com/aspnet/Blazor/blob/dev/src/Microsoft.AspNetCore.Blazor .Build/Core/IndexHtmlWriter.cs

Si envío un PR sobre esto, ¿se consideraría?

Solucione este problema, es el único elemento que me impide probar esto en la empresa.

Sugerencia de solución rápida si está utilizando IIS con el módulo de URL de reescritura:

  • puede cambiar en la salida todos los archivos ".*.dll por .wasmnet o cualquier cosa. Esto editará el contenido de la etiqueta del script (https://docs.microsoft.com/en-us/iis/extensions/url-rewrite -módulo/creación-de-reglas-de-salida-para-módulo-de-reescritura-de-url)
  • reescriba esta extensión a dll para que los archivos buenos se envíen al navegador (o cambie el nombre de los archivos dll después de la implementación)

es posible que pueda hacer esto con .net core https://docs.microsoft.com/fr-fr/aspnet/core/fundamentals/url-rewrite?view=aspnetcore-2.1&tabs=aspnetcore2x

Solo otra idea: observo que la mayoría de estos productos de firewall y seguridad no bloquean los archivos .zip. De hecho, muchas veces cuando trato de descargar un archivo .dll donde estoy bloqueado en alguna red corporativa, noto que una versión .zip del mismo archivo casi siempre pasa el bloqueo.

Así que simplemente podríamos empaquetar MyLib.dll como MyLib.zip (que contiene un solo archivo MyLib.dll dentro del zip). El problema es que el navegador de forma nativa será más rápido al descomprimir el contenido de los archivos en comparación con si fuera WASM/MONO usando algún ensamblado .NET para descomprimir el contenido del archivo comprimido. Habría al menos una ralentización de 2x-3x para la descompresión.

Pero hay una solución: podríamos empaquetar el archivo MyLib.dll como MyLib.zip con CERO compresión utilizada, luego dejar que el servidor web comprima el archivo (usando cualquier formato de compresión que admita el navegador del cliente al solicitar el archivo). Cuando el navegador descargue ese archivo, descomprimirá de forma nativa el contenido recibido, antes de que llegue a Mono/WebAssembly. Entonces, el tiempo de ejecución de Mono solo necesitaría descomprimir el archivo .zip (que en este punto es el archivo zip original sin comprimir).

Espero que nadie se confunda con lo anterior. Solo estoy sugiriendo que usemos .zip como un formato de contenedor sin comprimir; luego deje que el navegador web y el servidor web manejen la compresión y descompresión de la forma en que lo hacen normalmente para cualquier archivo solicitado. Para dar un ejemplo concreto:

  1. 2 MB de mscorlib.dll se .comprime en 2 MB de mscorlib.zip (tenga en cuenta que configuramos la compresión en NINGUNO).
  2. El navegador web solicita mscorlib.zip (enviando encabezados de codificación de aceptación habituales con métodos de compresión admitidos).
  3. El servidor web comprime el contenido de mscorlib.zip hasta 700 MB y lo envía al servidor, por lo que el tamaño del paquete sería el mismo que el actual)
  4. El navegador web (Chrome o Edge, etc.) descomprime el contenido de forma nativa, y el tiempo de ejecución de Mono recibiría el archivo mscorlib.zip original de 2 MB, que WASM Mono puede desempaquetar en el .dll original muy rápido porque no se usa ninguna compresión interna en ese archivo zip original.

Así que esa es solo otra sugerencia para incluir en el cubo. Mis pensamientos sobre otras ideas sugeridas:

  • Espero que sea suficiente simplemente eliminar la extensión, ya que MyLib.dll se convierte en MyLib o la sugerencia anterior de MyLib_dll.
  • También acepto que debería ser posible "empaquetar" el ensamblaje como datos dentro de un archivo .wasm (pero aún internamente en formato IL) de la misma manera que los ensamblajes .NET usan el formato PE y recibieron .dll como una extensión. Entonces podríamos tener un MyLib.wasm que almacenó internamente el IL como datos. La única desventaja que veo aquí es que cuando tenemos una compilación AOT real, puede ser difícil saber visualmente si un archivo .wasm contenía código compilado IL o Natively (WASM).

.dll sería la extensión adecuada y debería mantenerse como predeterminada. Ocultar la intención del archivo cambiando la extensión a .zip no es una solución óptima, ya que genera confusión. Probablemente sería mejor no usar ninguna extensión y nombrar el archivo como somedllname_v1_0_0_4321_ab5e8d5b97d141aca3c54776e82d2355
(es decir, el nombre del proyecto, la versión del archivo y un hash SHA-256)

Un problema mayor es que los escáneres AV actuales (heurísticamente) detectan rutinas que obtienen código adicional. No existe una solución real para ese problema hasta que los proveedores de AV hagan adaptaciones para admitir .wasm . Por lo tanto, mejor póngase en contacto con los proveedores de AV e informe como un error, para que puedan solucionarlo.

Estoy 100% de acuerdo con @MovGP0. Los proveedores de AV tienen que actualizar su software. Usan diferentes algoritmos para detectar código malicioso y esos algoritmos tienen que ser lo suficientemente inteligentes para bloquear virus y permitir software legítimo. Creo que todos los escáneres antivirus modernos verifican el contenido de cada archivo, zip, 7z, rar, etc. Cambiar la extensión del nombre del archivo o el pseudoempaquetado no es una solución a largo plazo.

Simplemente parece una tontería que esto sea un problema porque el bloqueo se debe a razones heredadas. Hay dos escenarios con Blazor para archivos DLL:

  1. Código IL que se ejecuta interpretado en un navegador: en este caso, el código IL en la DLL es solo DATOS sin procesar, y no es más una amenaza que un archivo JPG o XML que el navegador está procesando. Esto se debe a que la IL descargada se interpreta por completo. El producto de seguridad no tiene más negocios con esto que con cualquier archivo GIF, XML o TXT que esté procesando un sitio web.

o (en el futuro)

  1. Código IL compilado AOT a .wasm. En este caso, el código IL generaría .WASM y el único problema debería ser cómo estos productos de seguridad manejan los archivos .wasm.

Otro punto sobre el "empaquetado" es que esto es exactamente lo que muchos marcos de javascript ya hacen para reducir las solicitudes al servidor: tener algún script del lado del servidor que combine dinámicamente múltiples scripts separados archivados en un solo archivo. Personalmente, me encantaría ver algún controlador inteligente del lado del servidor que pudiera combinar dinámicamente 20 archivos DLL pequeños (5k) para reducir las solicitudes iniciales del servidor y permitirme, como desarrollador, tener algún control opcional sobre eso durante la carga de la página.

Pero creo que el equipo de Blazor tiene nuestros comentarios ahora y hará lo que sea sensato y/o brindará opciones.

Señalaré que la opinión de que debemos esperar hasta que todos actualicen sus productos de seguridad no funciona porque no son solo los productos , son las grandes empresas existentes las que no realizarán cambios de configuración realistas en su infraestructura de red. Esto realmente perjudicará el uso de Blazor porque no se trata solo de escáneres AV, sino de intentar decirle al personal dentro de un departamento de TI de una gran empresa como News Corporation o Bhp Billiton que realice cambios en la configuración de la red. La cultura está cambiando, pero todavía hay mucho personal en esos departamentos a los que simplemente no les importaría (o sonreirían activamente) si esto causara problemas con Blazor ☹.

  • Creo que todos los escáneres AV modernos verifican el contenido de cada archivo, zip, 7z, rar, etc.
    Mi experiencia personal durante la última década es que cuando está en formato .zip todo suele estar bien. Las cosas generalmente se bloquean si los archivos son .exe o .dll. Dentro de un archivo zip, la mayoría de los productos solo bloquearían el archivo zip si detectan una firma real conocida de malware dentro del archivo zip (no solo porque hay un .dll dentro). Pero reconozco que cada producto es diferente, por lo que no hay garantías aquí.
    De: Andrzej-W [email protected]
    Enviado: miércoles, 6 de junio de 2018 5:38 a. m.
    Para: aspnet/Blazor [email protected]
    CC: jiggyswift [email protected] ; Comentar [email protected]
    Asunto: Re: [aspnet/Blazor] Considere cambiar las URL de los ensamblados .NET para que no terminen con .dll (#172)

Estoy 100% de acuerdo con @MovGP0 https://github.com/MovGP0 . Los proveedores de AV tienen que actualizar su software. Usan diferentes algoritmos para detectar código malicioso y esos algoritmos tienen que ser lo suficientemente inteligentes para bloquear virus y permitir software legítimo. Creo que todos los escáneres antivirus modernos verifican el contenido de cada archivo, zip, 7z, rar, etc. Cambiar la extensión del nombre del archivo o el pseudoempaquetado no es una solución a largo plazo.


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/aspnet/Blazor/issues/172#issuecomment-394834055 , o silencie el hilo https://github.com/notifications/unsubscribe-auth/AmF6aIkiXWAVe282A0YSh_a7bgmGPGN7ks5t5t4OgaJpZM4SUpej .

Dos personas del equipo de seguridad corporativa vinieron a mi escritorio después de navegar por el sitio de ejemplo de mono wasm , que descarga un hello.exe . Creo que fue recogido por "Symantec Endpoint Protection".

gracias harry ¿Te dieron tiempo de empacar todo en una caja antes de salir por la puerta? La mejor historia hasta ahora.

De: Harry McIntyre [email protected]
Enviado: jueves, 7 de junio de 2018 20:36
Para: aspnet/Blazor [email protected]
CC: jiggyswift [email protected] ; Comentar [email protected]
Asunto: Re: [aspnet/Blazor] Considere cambiar las URL de los ensamblados .NET para que no terminen con .dll (#172)

Dos personas del equipo de seguridad corporativa vinieron a mi escritorio después de navegar por el sitio de ejemplo de mono wasm https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.hipbyte.com % 2F% 257Elrz% 2Fmono-WASM-hola y datos = 02% 7C01% 7C% 7Cf21af207f881447e8d5d08d5cc627621% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% 7C636639645608861860 y sdata = Cp9wUKXElAX4z39zarw0DQOlhHo3ZY0MtSRdz8j5YDw% 3D y reservado = 0 , que descarga un hello.exe. Creo que fue recogido por "Symantec Endpoint Protection".


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en 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 y sdata = A9rl39HzRP7w9mzRkqPKrG4zsHJKkVIy2jwJ0e9nc3g% 3D y reservado = 0 , o silenciar el hilo https://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub. com% 2Fnotifications% 2Funsubscribe-auth-% 2FAmF6aG9lvmy2g93BQQmI 5mbrGICanCxks5t6QIPgaJpZM4SUpej y datos = 02% 7C01% 7C% 7Cf21af207f881447e8d5d08d5cc627621% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% 7C636639645609018105 y sdata = yZhLQXXqqp0hLEtD3mTowdoI4EpBu5qNNR0UI4tZDm8% 3D y reservado = 0 .

Puede 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

El sistema puede inspeccionar hasta tres niveles de archivos anidados debajo del archivo de almacenamiento externo (nivel 0) si el archivo es un archivo (como archivos de almacenamiento .zip o .rar). Puede inspeccionar archivos comprimidos tan grandes como el Tamaño máximo de archivo para almacenar la configuración de control de acceso avanzado.
Si un archivo individual coincide con una regla de archivo con una acción de bloqueo, el sistema bloquea todo el archivo, no solo el archivo individual. El sistema también puede bloquear archivos que excedan un nivel específico de anidamiento, o cuyo contenido esté encriptado o no pueda ser inspeccionado.

Otro enlace (desplácese hasta "Característica de tipos de archivos"):
https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk105318&js_peid=P-14d3e69bf07-10000

Encontré una solución que se describe aquí: https://remibou.github.io/Change-Blazor-DLL-extension-with-ASPNET-Core/. Puede que no sea de ayuda para todos los casos y AV, pero es un punto de partida.

@RemiBou hombre... eso es increíble :) ¡Buena captura en el uso de URLRewrite para eso! 👍

Sobre el tema del reemplazo de la extensión dll, me gustaría impulsar la extensión wasm (incluso si no es técnicamente correcta) porque las páginas de github, cloudflare y probablemente la mayoría de los CDN ya están manejando la compresión para "aplicación/wasm" pero no para "aplicación/ octet-stream", por lo que una aplicación Blazor predeterminada pesa alrededor de 3,2 MB y solo tiene mono.wasm comprimido con brotli. Al final, las bibliotecas de Blazor ya van a ser wasm de todos modos cuando la compilación AOT esté en su lugar, ¿no es así?

Acabo de probar el truco de @RemiBou usando la extensión wasm y renombrando los dlls antes de enviarlos a gh-pages y ahora una actualización en frío asciende a 1.9 MB como debería ser: ¡genial! Gracias @RemiBou!!

Pero mi antivirus Avast inicialmente se volvió loco porque todos esos archivos wasm falsos estaban infectados con DRep y recibí la misma ventana de alerta que @jorisvergeer . Después de una búsqueda rápida, creo que el problema podría resolverse descargando las bibliotecas wasm falsas de un sitio con una mejor reputación que mi subdominio creado recientemente, pero ahora solo estoy adivinando.

Para ver un ejemplo de cómo una aplicación blazor del lado del cliente falla desde dentro de una corporación, consulte el archivo PDF adjunto. Este es un problema frustrante desde el punto de vista de un desarrollador, ya que estamos a merced de algo que está fuera de nuestro control.

Sería increíble si pudiéramos intentar precompilar los dlls en archivos wasm y luego poder descargarlos en su lugar. (Ojalá eso funcione)

403prohibido.pdf

El mensaje prohibido 403 en la publicación anterior fue generado por nuestro firewall zscaler.

¿Cuál es la mejor manera de dar visibilidad y prioridad a este problema para que se considere en un sprint futuro?

@rynowak @SteveSandersonMS @mkArtakMSFT Necesitamos asegurarnos de tener una solución para esto, así que avanzamos hacia el hito blazor-wasm.

Creé un documento que describe la solución que uso en este momento para evitar que zScaler bloquee los archivos DLL.

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

Sospecho que es posible que debamos considerar una solución similar para los archivos WASM, ya que existe la posibilidad de que los fabricantes de cortafuegos tarden un tiempo en aceptar los archivos wasm como seguros durante los próximos dos años.

Tengo muchas ganas de PublishSingleFile/PublishTrimmed/TargetFramework=wasm para que solo tengamos un único archivo relativamente pequeño para administrar en el trabajador del servicio.

¿Tus pensamientos?

¡Gracias Dan!
Estoy agradecido de que esto esté recibiendo algo de atención.
Publiqué mi solución provisional en https://github.com/aspnet/AspNetCore/issues/5477
Espero que pueda ayudar de alguna manera.
José

De: Daniel Roth [email protected]
Enviado: viernes, 11 de octubre de 2019 10:33
Para: aspnet/AspNetCore [email protected]
Cc: jucchitil [email protected] ; Comentar [email protected]
Asunto: Re: [aspnet/AspNetCore] Considere cambiar las URL de los ensamblados .NET para que no terminen con .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 y reservado = 0 @SteveSandersonMS https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSteveSandersonMS&data=02%7C01%7C%7Cecf83fca357f4abe690d08d74e604c75%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0 7C637064047810613296% y sdata = vDuSWWEJ0CGf7ex7TStTMrHH1E27V5eza% 2FMJKIkr% 2BeY% 3D y reservado = 0 @mkArtakMSFT https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FmkArtakMSFT&data=02%7C01%7C%7Cecf83fca357f4abe690d08d74e604c75 %7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637064047810623307&sdata=ltzBUDC4c8o9kPvFmBlIOHN1B%2BUI2Fj%2FspG4WCIo%2BD8%3D&reserved=0 Tenemos que asegurarnos de que tenemos una solución para esto, así que avanzar hacia el hito blazo.


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en 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 y datos = 02% 7C01% 7C% 7Cecf83fca357f4abe690d08d74e604c75% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% 7C637064047810633312 y sdata = qxqf5LstFcAUsEgSImIxMMOw33sNOgku09qw% 2FJp3Z18% 3D y reservado = 0 , o darse de baja https://eur01.safelinks.protection.outlook.com/?url= https% 3A% 2F% 2Fgithub.com% 2Fnotifications% 2Funsubscribe-auth% 2FAEBYRE2MQUF65CHXQD54OWDQOCMCVANCNFSM4GK4V5LQ y datos = 02% 7C01% 7C% 7Cecf83fca357f4abe690d08d74e604c75% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% 7C637064047810643323 y sdata = yx154tNWkGvXlXbVJNjvswed9hG0zr91HFqIhMVLCfo% 3D y reservado = 0 .

Solo siguiendo una solicitud de Daniel Roth en su blog, quien me pidió que publicara el nombre de mi proveedor de alojamiento web aquí, para que pueda probar este problema. El comentario del blog se puede encontrar aquí: - https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/#comment -955

El proveedor de alojamiento en cuestión es infinityfree.net. ¡Son gratuitos, por lo que será fácil probarlos!

Básicamente, al cargar el sitio, su servidor eliminará alrededor de la mitad de los archivos DLL de la carpeta _framework\bin\. Originalmente pensé que algo había salido mal y traté repetidamente de cargar los archivos faltantes. Eventualmente parecieron "pegarse", como si su servidor dejara de revisar los nuevos archivos y un día después todavía estuvieran allí (aunque tal vez eventualmente sean barridos).

De todos modos, agregue mi voto para una solución adecuada, como cambiar el nombre de las DLL.

@andyste1 Gracias por la información. ¿Revisó y confirmó que si se cambió el nombre de los archivos, no se eliminan? Si la empresa de alojamiento está haciendo esto en función del contenido en lugar del nombre, cambiar el nombre no sería necesariamente una solución.

Es posible que cambiar el nombre no ayude mucho: ya hay una solución alternativa disponible para lograrlo.
Para mí, el problema es el formato PE del archivo: el programa antivirus, Sophos, bloqueará los archivos cada vez que le cambie el nombre, ya que también analizó el contenido del archivo. Afortunadamente, Sophos permite descargar archivos DLL (formato PE) a través de HTTPS (no HTTP).

@lertoo estamos discutiendo la posibilidad de eliminar los metadatos de PE de los ensamblajes para reducir el tamaño, pero también puede ayudar con este problema.

Versión del antivirus Norton de este problema: https://forums.asp.net/t/2161027.aspx

Es muy probable que no solo la extensión del archivo, sino también el encabezado del archivo causen un problema con algún software paranoico. La ofuscación no ayudará cuando el problema esté relacionado con el encabezado, excepto que el JS que está iniciando la máquina virtual Blazor no los está reemplazando manualmente en la memoria de alguna manera, pero es una posibilidad remota.

Mi solución actual es proporcionar una versión codificada en Base64 de cada DLL en mi canalización de CI/CD, usar un trabajador de servicio para detectar el 403 del firewall para la DLL, descargar la versión Base64 del archivo de texto DLL y convertir Base64 de nuevo a DLL en el trabajador del servicio antes de almacenarlo en caché en el navegador.

Sería curioso ver si el problema desaparece si pudiéramos simplemente convertir las DLL a archivos WASM, ya que el archivo WASM parece funcionar bien para mí, pero puede que no sea cierto para todos los firewalls.

Otro falso positivo de Blazor WebAssembly:

image

He estado esperando desde principios de 2018 para que se resuelva este problema :) me encanta/me encantó blazor, pero este parecía un obstáculo tan potencial, si no se podían cambiar los dlls

@JonnyGibson ¡ Gracias por su paciencia! Estamos trabajando para tener algún tipo de resolución a este problema para el próximo lanzamiento en mayo de este año.

Este es un problema bastante largo, así que he tratado de resumir todo esto aquí:

antivirus

  • NOD32 (ESET)
  • PROMEDIO v. 18.1.3044 (+3)
  • Escaneo de tráfico web
  • Avast (+3)
  • Symantec Endpoint Protection
  • zScaler

Renombrar propuestas

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

La gente usa soluciones alternativas

  • Renombrar extensión
  • BASE64 codifica DLL

Notas generales

  • .DLL y .EXE son extensiones que muchas empresas bloquean a nivel de firewall, como política.
  • Ha habido informes de extensiones renombradas también informadas por software antivirus

@mkArtak
También es posible que desee incluir zScaler en algún lugar de su resumen, ya que eso es lo que bloqueaba mis descargas.

Un enfoque para probar es convertir todos los ejecutables en archivos wasm, ya que no recuerdo que zScaler haya tenido problemas con ellos.

Me mudé temporalmente a Angular hasta que Blazor del lado del cliente resuelva estos problemas y tenga mejores tiempos de descarga iniciales.

Dediqué mucho tiempo a intentar que Blazor del lado del cliente funcionara y decidí esperar hasta que la plataforma haya madurado un poco más.
https://github.com/jucchytil/CSBNotes/blob/master/Notes.md

@javiercn hagamos un seguimiento del trabajo de cambio de nombre de la extensión del archivo aquí y presentaré un problema por separado para hacer un seguimiento con los proveedores de antivirus con respecto a esto.

ACCIÓN REQUERIDA

🎫
Acabo de crear un nuevo problema en el que intentaremos recopilar todo el software específico que bloquea las aplicaciones Blazor WASM. Proporcione información específica para su caso como se describe aquí: https://github.com/dotnet/aspnetcore/issues/19552

En una nota al margen, los CDN como las páginas de github y cloudflare están comprimiendo los activos con una extensión wasm lista para usar mientras ofrecen una versión sin comprimir para los archivos dll. Si no recuerdo mal, Azure CDN debería comportarse de la misma manera.

Experimentamos esto hoy. Eliminar la restricción de descarga de DLL no será una opción. No solo para nosotros, sino que es muy poco probable que nuestros clientes también eliminen esa restricción, por lo que realmente necesitamos una solución para esto; de lo contrario, nuestro proyecto Blazor está muerto en el agua (el empleador no está dispuesto a usar el lado del servidor).

Creo que nuestro cortafuegos es un Palo Alto.

@mrpmorris , ¿puede poner los detalles en https://github.com/dotnet/aspnetcore/issues/19552 ya que aquí es donde los estamos recopilando para que podamos involucrar a los proveedores?

@mrpmorris , ¿cambiar la extensión resolvió el problema en su escenario?

Hola @javiercn

Acabo de actualizar ese problema. Parece que cambiar a https funcionó para nosotros, lo cual tiene sentido. Sin embargo, no podemos estar seguros de que nuestros clientes estén dispuestos a tener la misma excepción.

Estaré encantado de comprobar la opción de cambio de nombre. ¿Tiene un enlace a instrucciones sobre cómo hacer que Blazor funcione con extensiones .wasm u otra cosa? En este momento, solo hago clic con el botón derecho en mi proyecto de servidor web y elijo Publish directamente a una aplicación web de Azure.

@mrpmorris Puedes consultar las instrucciones aquí
https://github.com/dotnet/aspnetcore/pull/19558#issuecomment-594461263

@mrpmorris Tenga en cuenta que esas instrucciones solo se aplican a nuestras últimas compilaciones 3.2.0-preview2 y actualizar desde 3.2.0-preview1 requerirá un poco de trabajo siguiendo los pasos que aún no hemos publicado. Es posible que desee esperar hasta que lancemos a finales de este mes.

@ danroth27 No creo que hayas publicado preview2 todavía... :)

Puede probar esto con las compilaciones nocturnas siguiendo las instrucciones aquí si elige hacerlo.

Le recomendaría que borre los cachés de paquetes nuget antes y después si elige hacerlo. Tenga en cuenta que borrar los cachés afectará a toda la máquina (todas las aplicaciones en esa máquina)

Esperaré a que se publique la compilación p2 y luego la probaré. ¡Gracias!

@mrpmorris 3.2 Preview 2 ya está disponible. ¿Te funcionan los pasos sugeridos en https://github.com/dotnet/aspnetcore/pull/19558#issuecomment -594461263 para cambiar el nombre de los archivos?

¡Hola amigos!

En la versión reciente de Blazor WebAssembly 3.2 Preview 2 , realizamos algunos cambios para que sea más fácil cambiar el nombre de los archivos .dll en su aplicación como una forma de abordar los proxies/firewalls/software antivirus que interfieren con las aplicaciones de Blazor WebAssembly. Nos gustaría que las personas que están enfrentando este problema prueben los pasos a continuación en el resultado publicado de sus aplicaciones Blazor WebAssembly (independientes o alojadas en ASP.NET Core) y vean si ayudan:

ventanas

  • Abra un indicador de PowerShell en el directorio wwwroot de su salida publicada (por ejemplo, en yourapp\bin\Release\netstandard2.1\publish\wwwroot
  • Ejecute las siguientes dos líneas:
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/mac OS

  • Abra una terminal en el directorio wwwroot de su salida publicada (por ejemplo, en yourapp/bin/Release/netstandard2.1/publish/wwwroot
  • Ejecute las siguientes dos líneas:
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

Por favor, prueba estos pasos y cuéntanos cómo te va. Si aún tiene problemas, ¡háganoslo saber! Tenemos algunas otras ideas de cosas para probar si es necesario.

¡Gracias!

Eso funcionó para mí. Aunque tuve que ajustar mi paso de publicación en Azure DevOps y desactivar que genera un zip al final.

En mi 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 ¿ Funcionó en qué sentido? En el sentido de que observó de manera concluyente que su sitio no funcionaba antes (debido a algún tipo de antivirus o firewall), ¿y el cambio de URL solucionó esto? Si ese es el caso, ¿podría publicar detalles de qué antivirus/cortafuegos/etc. le estaba causando problemas antes en https://github.com/dotnet/aspnetcore/issues/19552? ¡Gracias!

@SteveSandersonMS bueno, anteriormente tenía el trabajo a través de la reescritura en su lugar. Después de la actualización a la vista previa 3.2 2, esa ya no funcionó y la aplicación se bloqueó nuevamente. Con lo anterior vuelve a funcionar.

Lamentablemente no puedo decirte que firewall tenemos en nuestra red y no creo que el AntiVirus (McAffee) tenga impacto aquí, ya que trabajando localmente funcionó sin problemas.

Alguien en mi oficina dio positivo por COVID-19, por lo que parece que mi oficina estará cerrada por un par de semanas, lo que significa que no accederé a los archivos a través de su firewall. Lo siento.

@mrpmorris No hay problema. ¡Mantenerse a salvo!

¡Hola amigos!

En la versión reciente de Blazor WebAssembly 3.2 Preview 2 , realizamos algunos cambios para que sea más fácil cambiar el nombre de los archivos .dll en su aplicación como una forma de abordar los proxies/firewalls/software antivirus que interfieren con las aplicaciones de Blazor WebAssembly. Nos gustaría que las personas que están enfrentando este problema prueben los pasos a continuación en el _resultado publicado_ de sus aplicaciones Blazor WebAssembly (independientes o alojadas en ASP.NET Core) y vean si ayudan:

@danroth27

Ejecuté el script (desarrollé en Windows, pero implemento desde un entorno Linux a otro entorno Linux, así que usé el script Linux provisto) y lo implementé con los nuevos nombres, y al cargar la página parece estar cargando los archivos. con las nuevas extensiones bien, y la aplicación funciona. En nuestro caso, Avast ya no marca la aplicación ni bloquea las descargas.

Debido a la situación de la pandemia, pasará un poco antes de que verifiquemos la situación del firewall corporativo.

Este es un paso bastante simple para agregar a la compilación y parece no tener inconvenientes, por lo que comenzaremos a usarlo.

¡Gracias!

@ danroth27 , ¿este será el valor predeterminado en algún momento, por lo que no es necesario que hagamos este paso? ¿Hay realmente alguna razón para no simplemente pasar a .bin o ningún tipo de archivo como predeterminado en lugar de exigir que todos hagan esto si hay un problema general con el tipo de archivo .dll?

¿Existe alguna posibilidad de que un antivirus verifique el archivo incluso si no es ".dll" para ver si es un archivo dll?

@danroth27 @SteveSandersonMS
Recibí muchos errores en la consola del navegador relacionados con fallas de integridad o archivos no encontrados:

_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.

Intenté los pasos que mencionó @danroth27 tanto en Windows como en un contenedor Docker de Linux con los mismos resultados.

Uso de la vista previa 3.2 4.

@radderz Este problema no parece afectar a todos los entornos: es específico de ciertos entornos y, a menudo, se basa en políticas. Si cambiamos a una extensión de archivo diferente, no hay garantía de que esto funcione para todos. Por lo tanto, en lugar de cambiar el valor predeterminado para todos, seguimos adelante con el plan en el que los clientes que se encuentran con este problema pueden controlar las extensiones de archivo por sí mismos utilizando la técnica proporcionada anteriormente.

Sin duda, es posible que el software antivirus, los proxies o los cortafuegos puedan realizar una inspección más profunda de los archivos que simplemente mirar la extensión del archivo. Hasta ahora no hemos oído hablar de nadie bloqueado por esto todavía. Si esto se convierte en un problema, lo haremos en otras mitigaciones.

@mihaimyh ¿ Parece que podría tener una política de seguridad de contenido mal configurada?

@mihaimyh ¿ Parece que podría tener una política de seguridad de contenido mal configurada?

@danroth27 ¿Puedes, por favor, ser más explícito? ¿De qué política de seguridad estás hablando? Obtuve esos errores incluso en el entorno de desarrollo donde creo que no hay una política de seguridad implementada.

@mihaimyh Lo siento, creo que confundí la política de seguridad de contenido con la integridad de los subrecursos. Parece que el navegador intenta imponer que los valores hash de los recursos descargados coincidan con los valores especificados en el marcado a través del atributo integrity , pero falta el atributo integrity . Esto también podría estar relacionado con la forma en que Blazor descarga y almacena en caché los recursos de la aplicación, que usa una estrategia similar basada en hash para verificar si los archivos han cambiado.

@mihaimyh Lo siento, creo que confundí la política de seguridad de contenido con la integridad de los subrecursos. Parece que el navegador intenta imponer que los valores hash de los recursos descargados coincidan con los valores especificados en el marcado a través del atributo integrity , pero falta el atributo integrity . Esto también podría estar relacionado con la forma en que Blazor descarga y almacena en caché los recursos de la aplicación, que usa una estrategia similar basada en hash para verificar si los archivos han cambiado.

@ danroth27 Ok, y creo que puedo pasar por alto la verificación de integridad agregando

<BlazorCacheBootResources>false</BlazorCacheBootResources>

a mis archivos .csproj, pero todavía recibí un evento 404 con la verificación de integridad deshabilitada.

@mihaimyh Si puede reproducir esto de manera confiable, sugeriría abrir un nuevo problema para este problema, ya que no parece estar relacionado con el problema de las extensiones de archivo. Eso hará que sea más fácil involucrar a las personas adecuadas.

Asegúrese de agregar algo como esto en su secuencia de comandos "renombrar dll"

# 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"

La mayoría de las veces, se descargará el blazor.boot.json precomprimido en lugar del blazor.boot.json "fijo" que realiza solicitudes a los archivos ".dll" en lugar de los archivos ".bin" que causan el problema de integridad.

Por lo tanto, debe eliminar los archivos json comprimidos o volver a comprimir blazor.boot.json, pero no creo que valga la pena pasar por esa molestia.

Con suerte, algún día todo esto podría ser manejado por el marco con una bandera en el csproj, por ejemplo

<BlazorBinariesExtension>.bin</BlazorBinariesExtension>

Hola amigos. En este punto, hemos documentado la estrategia que recomendamos para cambiar la extensión de archivo de los ensamblados .NET publicados mediante scripts. Creo que la sugerencia de @stavroskasidis sigue siendo buena para proporcionar una forma integrada simple de hacer esto, así que abrí https://github.com/dotnet/aspnetcore/issues/21489 para rastrear la sugerencia. En este punto, creo que estamos listos para cerrar este problema. ¡Gracias a todos por los comentarios detallados proporcionados!

Por lo que puedo ver, el cambio de nombre de .dll a .bin debe hacerse también en wwwroot/service-worker-assets.js y eliminar o volver a comprimir wwwroot/service-worker-assets.js.br y wwwroot/service-worker-assets.js.gz , de lo contrario, hay problemas de integridad en consola del navegador.

¿Fue útil esta página
0 / 5 - 0 calificaciones