Chrome dice adiós a NPAPI


Hace algunos días hablamos del adiós de Abode Flash en Chrome, ahora vemos a otro partir, desde la versión 45 de Google Chrome, que fué liberada el pasado septiembre, el navegador, ya no soporta NPAPI (Tecnología requerida para los Applets de Java), lo que impacta en los plugins para Silverlight, Java, Facebook Video y otras NPAPI similares.

Este cambio no afecta las aplicaciones Web Start, ya que solamente afecta a los applets. Si se tienen problemas para acceder a las aplicaciones Java que utilizan Chrome, Oracle recomienda utilizar Internet Explorer o Safari en su lugar.

Mientras tanto, desarrolladores y administradores de sistemas tienen que buscar alternativas que permitan a los usuarios de Chrome levantar aplicaciones que lleven applets de JAVA. Aprovechando HTML y JavaScript se pueden desarrollar nuevas extensiones de forma más fácil, pero ¿qué pasa código propietario que necesita volver a utilizar alguna extensión existente? por el momento llega como advertencia, NPAPI se está eliminando, y es necesario buscar alternativas que permitan realizar las mismas funciones que se tenían con las NPAPI.

El código que se ejecuta en un plugin NPAPI tiene los permisos del usuario actual y no se tiene de la seguridad de estar protegidos para cualquier entrada maliciosa por Google Chrome, por lo que, debe tenerse especial cuidado cuando se procesan entradas de fuentes no confiables, por ejemplo, Scripts o XMLHttpRequest. Debido a los riesgos de seguridad que NPAPI supone para los usuarios, las extensiones que lo utilizan requieren revisión manual antes de ser aceptado en la Chrome Web Store.

¿Cómo usar las NPAPI?

Una vez que se tenga el plugin de NPAPI, siga los siguientes pasos para usar estas extensiones.

1) Adiciona una sección en tu extensión manifest.json, ésta describe donde encuentras el plugin, a través de otras propiedades:

{

“name”: “My extension”,

“plugins”: [

{

“path”: “extension_plugin.dll”

}

],

}

La propiedad “Path” debe especificar el path de tu plugin, relativa al archivo de manifiesto.

La propiedad “Public” indica que el plugin puede ser accesado por páginas web regulares, por default es falso, lo que significa que solamente tu extensión puede cargar el plugin. Si lo pones en verdadero, es de tener mucho cuidado por que significa que cualquier página se podrá llamar a través de tu plugin.

Consideraciones de seguridad

Incluir un plugin NPAPI en tus extensiones puede ser peligroso porque éstos no tienen restricciones de acceso a la maquina local, si tu plugin contiene una vulnerabilidad, puede ser atacada instalando software malicioso en las maquinas de los usuario. Trata de evitar en la medida de lo posible, los plugins NPAPI para evitar afectar a los usuarios.

Si necesitas usar el plugin, no lo pongas como público, ya que, esto incrementa las posibilidades de ataque a las que puede ser sometido, y debido a eso, incrementa las posibilidades de infección a las máquinas de los usuarios finales.

Conclusiones

Anteriormente hemos hablado de los nuevos retos a los que los desarrolladores nos enfrentamos, cada vez viene más, no sólo por las nuevas tecnologías que surgen, sino también por las tecnologías que van quedando atrás. Es un reto, el mejorar las condiciones del desarrollo e ir evolucionando con la tecnología, pero también es un reto aún mayor, el cambiar las antiguas prácticas, sobretodo cuando se tienen aplicaciones que dependen de ellas.

Flexibilidad y seguridad deben ir siempre de la mano, para poder lograr buenos resultados en cada uno de los desarrollos que se tengan, innovando con la tecnología, sin afectar a los usuarios finales.

  • Carlos Fernando Vargas Vega

    Hola Luz buenos días. Muy bueno el árticulo. Actualmente estoy desarrollando aplicaciones en asp.net mvc 4 con sql server y desafortunadamente el quitar NPAPI me afecto considerablemente ya que tengo un proceso que generar Reportes utilizando la tecnología de generación de reportes de Microsoft en Visual Studio 2012. Este proceso genera el reporte desde el Controlador como un archivo byte[] de tipo mime PDF y lo envía al navegador para que lo interprete y lo muestre como un Pdf, el lío es que solo me muestra una página en blanco. En principio pense que el visor de pdfs del navegador era el problema pero si abro un pdf lo lee perfecto. no he podido saber cual es el problema hasta la fecha ni como buscar la solución googleando. Gracias. Me toco usar Opera que funciona perfecto. no me gusta Internet Explorer.

    • http://mycyberacademy.com/ Luz Barrientos

      Hola Carlos, gracias por tu mensaje, espero que esto te ayude.
      Se puede intentar con cargando tu plugin por mime-type.
      Por ejemplo, si tu mime.type es “application/x-my-extension”:

      var plugin = document.getElementById(“pluginId”);
      var result = plugin.myPluginMethod(); // call a method in your plugin
      console.log(“my plugin returned: ” + result);

      Esto se puede poner en la página donde generas el reporte en pdf.
      Espero que te haya servido la información, sino, déjamelo saber y podemos ver alguna otra forma.
      Saludos,
      Luz