javascript - guru99 - selenium introduction
Detectar icono de bloqueo roto(contenido mixto seguro/inseguro) de Javascript (3)
Estoy trabajando para hacer que un sitio sea completamente funcional bajo HTTPS. Como parte de esto, me gustaría asegurarme de que nunca "rompamos la cerradura". Es decir, nunca debemos cargar contenido que no sea SSL en una página SSL, que puede activar una advertencia u otro indicador según el navegador. Para verificar este es el caso, me gustaría hacer dos cosas:
- Escriba pruebas de Selenium que verifiquen que varias acciones no rompan la cerradura.
- Escriba el código de registro en JS que comprueba durante una sesión de usuario si el bloqueo está roto y vuelve a iniciar sesión en el servidor, si es así.
¿Hay algún método que pueda usarse en JS para verificar el estado roto / no roto del icono de bloqueo HTTPS del navegador? ¿O de manera equivalente, el estado mixto / no mezclado del contenido de la página actual?
Puede repetir todo el DOM y verificar todos los enlaces para asegurarse de que sean https://
.
Parece que el CSP (Política de seguridad de contenido) de Mozilla, implementado en Firefox 4, lo resuelve parcialmente. Puede limitar el contenido cargado en su sitio a solo puertos SSL y enviar un informe a una URL especificada cuando el navegador intenta cargar algo que no sea SSL. Hasta el momento solo está en Firefox 4, pero tenemos suficientes usuarios de FF4 que esto puede servir como un sistema de alerta temprana decente.
Actualización 8/15: CSP también es compatible con Chrome. Lo he usado efectivamente en la producción como un sistema de advertencia temprana para errores de contenido mixto. Se ve más o menos así:
X-WebKit-CSP-Report-Only: default-src https: ''inseguro-en línea'' ''inseguro-eval''; report-uri / report_mixed_content; img-src https: // * datos:; frame-src https: // * sobre: ​​javascript:
Tenga en cuenta que este es un encabezado muy permisivo, con la intención de detectar solo errores de contenido mixto. Querrá usar X-Content-Security-Policy para Firefox.
Si implementa esto en un porcentaje de sus usuarios, obtendrá registros cada vez que implemente accidentalmente un error de contenido mixto. Para que esto sea efectivo para las pruebas de Selenio, deberá agregar un controlador de modo de prueba especial para / report_mixed_content que provoque la falla de la prueba.
Para los usuarios internos, tengo esto siempre habilitado en el modo de aplicación (elimine el -Informe-Solo). Esto ayuda a garantizar que otros desarrolladores noten errores de contenido mixto en nuevas características antes de que se implementen.
Puede usar la exploración de contenido mixto , una secuencia de comandos CLI de PHP que escribí y que escanea su sitio para contenido mixto.
Ejecute este script desde la CLI, tal como:
$ mixed-content-scan https://www.bram.us/
El script en sí comenzará a escanear y emitirá comentarios mientras se ejecuta. Cuando se encuentra contenido mixto, las URL que causan advertencias de contenido mixto se mostrarán en la pantalla:
$ mixed-content-scan https://www.bram.us/
[2015-01-07 12:54:20] MCS.NOTICE: Scanning https://www.bram.us/ [] []
[2015-01-07 12:54:21] MCS.INFO: 00000 - https://www.bram.us/ [] []
[2015-01-07 12:54:22] MCS.INFO: 00001 - https://www.bram.us/projects/ [] []
[2015-01-07 12:54:22] MCS.INFO: 00002 - https://www.bram.us/projects/mint-custom-title/ [] []
[2015-01-07 12:54:23] MCS.INFO: 00003 - https://www.bram.us/projects/bramusicq/ [] []
[2015-01-07 12:54:24] MCS.INFO: 00004 - https://www.bram.us/projects/gm_bramus/ [] []
[2015-01-07 12:54:24] MCS.INFO: 00005 - https://www.bram.us/projects/js_bramus/ [] []
[2015-01-07 12:54:26] MCS.INFO: 00006 - https://www.bram.us/projects/js_bramus/jsprogressbarhandler/ [] []
[2015-01-07 12:54:27] MCS.INFO: 00007 - https://www.bram.us/projects/js_bramus/lazierload/ [] []
[2015-01-07 12:54:27] MCS.INFO: 00008 - https://www.bram.us/projects/the-box-office/ [] []
[2015-01-07 12:54:28] MCS.INFO: 00009 - https://www.bram.us/projects/tinymce-plugins/ [] []
[2015-01-07 12:54:29] MCS.INFO: 00010 - https://www.bram.us/projects/tinymce-plugins/tinymce-classes-and-ids-plugin-bramus_cssextras/ [] []
[2015-01-07 12:54:30] MCS.INFO: 00011 - https://www.bram.us/projects/flashlightboxinjector/ [] []
...
[2015-01-07 12:54:45] MCS.INFO: 00036 - https://www.bram.us/2007/06/04/accessible-expanding-and-collapsing-menu/ [] []
[2015-01-07 12:54:45] MCS.ERROR: 00037 - https://www.bram.us/demo/projects/jsprogressbarhandler/ [] []
[2015-01-07 12:54:45] MCS.WARNING: http://www.google-analytics.com/urchin.js [] []
[2015-01-07 12:54:46] MCS.INFO: 00038 - https://www.bram.us/2008/07/11/ror-progress-bar-helper/ [] []
[2015-01-07 12:54:46] MCS.INFO: 00039 - https://www.bram.us/2008/11/10/jsprogressbarhandler-033/ [] []
[2015-01-07 12:54:47] MCS.ERROR: 00040 - https://www.bram.us/demo/projects/lazierload/ [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1212/1285026452_0aeb38b6e6.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1074/1273115418_a77357040a.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1096/1273106588_91f7a736c6.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1324/1216309045_31ca82f9d9.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1262/1217169586_e4b2bfa7df.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1149/1216304291_63fd48d9c4.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1366/1216301505_51b3c590ff.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1184/1216299847_c57975bed2.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1085/1217158084_a9b059d25b.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1040/1216293529_3b7c044815.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1029/1084232736_5b8c023f46.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1318/1043062251_17071a8cc7.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://farm2.static.flickr.com/1221/1043059543_05713e6156.jpg [] []
[2015-01-07 12:54:47] MCS.WARNING: http://www.google-analytics.com/urchin.js [] []
[2015-01-07 12:54:47] MCS.INFO: 00041 - https://www.bram.us/2011/09/30/css-regions-and-css-exclusions/ [] []
[2015-01-07 12:54:47] MCS.INFO: 00042 - https://www.bram.us/2014/06/04/good-looking-shapes-gallery/ [] []
...
También es posible pasar un archivo que contiene una lista de URL para escanear y cambiar el resultado a JSON. Ignorar patrones también son compatibles.