Un shim o polyfill no se instala en un navegador, pero se entrega como parte de una página web para proporcionar funcionalidad para esta página.
Es solo el contenido activo normal (JavaScript, Flash ...) que solo recibe el nombre de shim o polyfill porque cumple el propósito específico descrito por estos nombres. No tiene permisos ni restricciones especiales en comparación con otro contenido activo.
Como no es nada especial, se incluye en una página web de la misma forma que otro contenido activo, por ejemplo, utilizando la etiqueta script
en el caso de JavaScript. Y como un shim no tiene restricciones en comparación con otro contenido activo, puede hacer cualquier cosa que pueda hacer otro contenido activo, incluida la manipulación del árbol DOM, la captura de pulsaciones de teclas, la lectura del contenido de los campos de entrada, el acceso a las cookies para la página, etc. también toda la restricción que tiene otro contenido activo, es decir, que estas acciones están sujetas a la misma política de origen, etc. Esto significa que no puede capturar contraseñas de sitios de terceros, pero puede capturar contraseñas del sitio donde se incluyó el shim.
Al incluir un shim / polyfill de un tercero en su propio sitio web, debe tener en cuenta que el contenido del shim está fuera de su control. No solo puede desaparecer y así romper su sitio, sino que también puede modificarse para incluir la funcionalidad que no le gusta (como capturar contraseñas). Esto puede suceder porque el tercero es malicioso por sí mismo o ha sido hackeado. Este vector de ataque no solo es relevante para los shims, sino también para cualquier tipo de contenido activo que incluya de una fuente de terceros; es decir, bibliotecas de Javascript como jQuery, anuncios, botones para redes sociales, etc.
Por lo tanto, si necesita un shim, es mejor copiarlo en su sitio para tener un control total sobre la disponibilidad y las modificaciones. Debería echarle un vistazo al código para asegurarse de que el shim en sí no incluya el código de un tercero, porque entonces todavía tendría las mismas vulnerabilidades.