Cada vez que incluyas una secuencia de comandos de un dominio externo, estás confiando en ese dominio. p.ej. si su sitio es example.com
y tiene el siguiente código en su página de inicio
<script src="//example.edu/tracking_script.js"></script>
entonces example.com
confía plenamente en que example.edu
no haga nada malicioso dentro de tracking_script.js
. example.edu
tendrá el control total de los scripts del lado del cliente y podría hacer cualquier cosa que un script del lado del cliente alojado en example.com
pudiera hacer.
Lo mismo ocurre con Google Analytics: está agregando el código de script a su página que crea la referencia externa js
. Si Google quisiera, podrían adaptar su script para hacer cualquier cosa del lado del cliente a sus páginas. Lo mismo ocurre con una situación en la que el sitio web de Google Analytics está en peligro: cualquier atacante controlará todos los dominios con Analytics.
Al descontar cualquier cosa maliciosa, la ventaja de esto para Google es que pueden actualizar el código del lado del cliente de Analytics sin que los webmasters tengan que hacer actualizaciones por su parte. Por lo tanto, si actualizan una función del lado del servidor, pueden actualizar la contraparte del lado del cliente de manera adecuada y cada sitio del mundo ejecutará automáticamente el nuevo código del lado del cliente para sus visitantes.
postMessage
, mientras mantiene un perímetro de seguridad entre su dominio y los GA, no permitiría ninguna actualización de script del lado del cliente que pueda ser necesaria para que GA funcione después de una actualización del lado del servidor. (Tenga en cuenta que no necesita un IFrame para la comunicación segura entre dominios, CORS habilitado en el lado de Google le permitiría sitio para enviar una solicitud HTTP POST para registrar cada visita de página.)
Cuando utilice un producto de Google, estará bastante seguro, incluida la referencia de los scripts, por lo que hay pocos requisitos para que esto se haga de una manera diferente. Sin embargo, tener referencias de guiones a entidades menos conocidas cuya seguridad podría no ser del todo estándar de Google puede ser motivo de preocupación. En esos casos, sería prudente confiar en una tecnología del lado del cliente más segura que en la de JSONP.