2012-07-07 12 views
6

Actualmente estoy trabajando en una solución de honeypot para evitar el correo no deseado en mi sitio que consiste en agregar algunos campos con nombres aleatorios y ocultarlos con CSS agregando style="display : none;" en el elemento HTML. Cuando se envía, si alguno de estos campos no está vacío, como debería ser, significa que un spambot acaba de enviar el formulario. Eso o un usuario malicioso. De cualquier manera, la publicación es rechazada.¿Los navegadores con accesibilidad admiten CSS o JavaScript?

Ahora, esto funcionaría perfectamente pero supongo que todos los usuarios tienen navegadores compatibles con CSS.

Eliminar mediante JavaScript todos los campos que tengan el atributo CSS display igual a none podría evitar que los navegadores sin soporte de CSS muestren los campos supuestamente ocultos.

Por lo tanto, esto funcionaría bien para los navegadores que soportan:

  • tanto CSS y JavaScript
  • única CSS
  • JavaScript

Mi pregunta es, entonces, hacer los navegadores de el navegador ciego o cualquier otro navegador compatible con accesibilidad CSS y JavaScript, solo CSS, solo JavaScript o ninguno?

Respuesta

4

hacen los navegadores para los ciegos o cualquier otro navegador accesibilidad orientada

No hay navegadores en estos días que están orientadas hacia las personas con discapacidad. Solía ​​haber algunos proyectos, pero los principales fabricantes de tecnología de asistencia (AT) actuaron juntos y consiguieron que su software funcionara primero con IE y luego con Firefox. Te estás arriesgando con Chrome u Opera con AT, el soporte es impredecible.

compatible con CSS y JavaScript, solo CSS, solo JavaScript o ninguno?

Realmente se reduce a qué combinación de JS, CSS y AT se está utilizando. En general, AT está bien con CSS. Hay cuatro áreas que pueden causar problemas: color/contraste, display:table, display: none y visibility:hidden. Dado que los primeros dos no son parte de la pregunta, los saltearemos. JAWS solo anuncia contenido que tiene display:none o visibility:hidden en un <span>. Dejaré de comentar demasiado sobre JS, pero WebAIM tiene un artículo que proporciona an overview of JS and accessibility.

consiste en agregar algunos campos con nombres aleatorios y ocultarlos con CSS agregando style="display : none;" en el elemento HTML.

Supongo que está agregando correctamente <label> s a todos sus elementos de formulario. Por favor, agréguelos a los campos de miel en caso de que los lean. Añadiría "ignorar este campo" al <label> también.

lectura:

Screen Readers and display: none

JAWS, Window-Eyes and display:none: Return to 2007

+0

Gracias por su respuesta! (y todos los demás también). El único consejo que no creo que siga es agregar la etiqueta "ignorar este campo", ya que sería extremadamente fácil para un spambot reconocerlo. – federicot

+0

Dado que -según la visualización de artículos-: ninguno funciona en casi todos los casos y que JS también funciona, el usuario probablemente ni siquiera verá el campo, por lo tanto, supongo que una etiqueta faltante no se convertirá en accesibilidad problema aquí – federicot

+0

No soy un experto en bots de spam, pero no creo que interpreten las palabras especialmente en las etiquetas 'label'. Es probable que los Bots simplemente revisen una página en busca de 'input's y traten de meter basura. Así que ignoren que esto sería para AT. Si tiene un artículo que muestra que los bots saben omitir las entradas con las palabras "ignorar", "omitir", etc., por favor, comparta. –

2

Los lectores de pantalla modernos generalmente funcionan al "enganchar" una interfaz de texto a voz en un navegador web normal (por ejemplo, Internet Explorer). Como tal, admiten todos los CSS y Javascript que el navegador normalmente admitiría. display:none es perfectamente kosher.

Por lo que respecta a otros navegadores: las reglas básicas de CSS como display: none han sido compatibles con todos los principales navegadores web desde Netscape 4.algo. Si alguien está usando un navegador que no es compatible con CSS en absoluto, tendrá problemas mucho más grandes que tratar que su formulario de registro.

+0

Navegador web normal e Internet Explorer en la misma oración ?! –

+0

¡Punto justo! Me refiero a "normal" en que es un navegador convencional, en lugar de un motor de renderizado de propósito especial. – duskwuff

1

Si lo hace debido a usuarios maliciosos es una manera inútil - mi opinión. No soy tan malo, pero me costó un clic para desactivar el estilo CSS. Fácil complemento en el navegador moderno. Bueno para el desarrollo web y tal vez para otras cosas. Es como reinventar la rueda para trabajar con nombres de entrada ocultos al azar en forma fija. Capture 1 combinación de trabajo (leyendo el código fuente F4) y puede usarlo tantas veces como desee.

¿Por qué no simplemente ingresa el nombre adicional y almacena su nombre en la sesión y lo compara después de enviarlo?

O ponga allí un <input type="hidden" con código adicional (hash o cualquier otra cosa) que solo pueda reconocer su aplicación.

+0

La mayoría de los spambots son lo suficientemente tontos como para fallar en tales trucos, porque su tonto método funciona en cualquier otro lugar y los sitios donde no funciona son también los sitios donde un webmaster activo elimina y combate el correo no deseado. Excepto si usted es Google, Hotmail, un banco o cualquier sitio donde haya una gran recompensa si puede descifrar su antispam. Entonces se harán grandes esfuerzos. – FelipeAls

2

Bueno, yo uso Lynx cuando me siento decepcionado con el mundo a veces, y no es compatible con CSS. Lo que hago en casos como este es escribir un valor predeterminado en el campo oculto como: Please DON'T fill anything into this field

Eso cuida a cualquier persona que no puede ver, pero los bots estúpidos aún lo sobrescriben. Luego verifico mi código si el valor es diferente de exactamentePlease DON'T fill anything into this field y ¡ganancia!

Por cierto Este método campo oculto no se detendrá un atacante determinado de todos modos, por lo que es un punto discutible para hablar de lo que sucede si un atacante comprueba la fuente de la página. Solo queremos que se detengan los bots masivos, y los bots que pueden reconocer texto como este (cada desarrollador usa sus propias palabras para comunicar el mensaje) están lejos de caer en manos de los script kiddies, incluso si existen. Bueno, la última parte es una suposición.

0

Agregando a las respuestas de otros, voy a decir que el software de soporte como soporte JAWS cambios incluso dinámicos de la propiedad de presentación (por ejemplo, mostrar/ocultar una div presionando un botón).

Cuestiones relacionadas