elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 75
171  Programación / Desarrollo Web / Re: select2 cambiar valor de lista dinamica con jquery en: 23 Abril 2016, 03:03 am
Perdon, en otros foros (en ingles como stackoverflow) vi que se referian al nombre que muestra la lista como placeholder y me confundí. Yo me refiero a la opción seleccionada, en la lista aparece el nombre de la ciudad/zona seleccionada pero cuando abro la lista la opción seleccionada es la primera y el valor es 0, aunque se está mostrando el nombre... algo raro del plugin.

Select2 permite hacer muchisimas cosas, entre otras permite buscar y añadir nuevas opciones a la lista, así es como lo inicializo:

Código
  1. $('.location select').select2();
  2. $('.location select[name="location[city]"], .location select[name="location[zone]"]').select2({
  3.    tags: true,
  4.    createTag: function (params) {
  5.        return {
  6.        id: params.term,
  7.        text: params.term,
  8.        newOption: true
  9.        }
  10.    },
  11.    templateResult: function (data) {
  12.        var $result = $("<span></span>");
  13.  
  14.        $result.text(data.text);
  15.  
  16.        if (data.newOption) {
  17.        $result.append(" <em>(nuevo)</em>");
  18.        }
  19.  
  20.        return $result;
  21.    }
  22. });

Pero creo que se trata de un fallo de la versión del select2 que no detecta correctamente el cambio de valor y no lo realiza. Abriré un issue en el repositorio.

EDITO: Vale ya he encontrado el problema. Al hacer el trigger change, se hacia tambien el on change que se encarga de popular las listas. Un peligroso conflicto de intereses, no volverá a pasar  ;D

EDITO 2: Dejo la respuesta por si alguien usa este plugin, hay que hacer que sea solo select2 el que active el change y no jquery: .trigger('change.select2'); de esta manera change() solo se produce en la instancia de select2.
172  Programación / Desarrollo Web / [Resuelto] select2 cambiar valor de lista dinamica con jquery en: 22 Abril 2016, 23:16 pm
Me acaba de dar cuenta de que uno de mis scripts no funciona correctamente. Se trata de 2 de las 3 listas que tengo para seleccionar provincia, ciudad y zona.

La primera lista al no ser dinamica simplemente uso change() para que select2 sepa que el valor ha cambiado y lo refleje (tanto el placeholder como el valor de la lista en sí).

En el caso de las otras dos listas, es algo increible... cada vez que refresco (F5) la página, estas dos listas hacen algo distinto... no sé si es porque son dinamicas, pero no funciona.

Buscando en google he visto que para estos casos se usa la función trigger('change'); y opcionalmente se vuelve a instanciar select2 en el elemento antes de cambiar el valor. Lo estoy haciendo pero sigue sin funcionar:

Tengo un botón para cada lista que muestra con un alert el valor actual de cada lista. La segunda lista a veces muestra el valor y otras no, la tercera siempre muestra 0...

  • El placeholder cambia (puedo ver el nombre de la ciudad/zona), pero al abrir la lista la opción seleccionada es la primera (valor 0).
  • En el caso de la tercera lista (zonas), a veces llega a no suceder absolutamente nada. Otras simplemente cambia el placeholder pero el valor sigue siendo 0.

Código
  1. $(function () {
  2.  
  3.    var province        = <?php echo $province; ?>,
  4.        city            = <?php echo $city; ?>,
  5.        zone            = <?php echo $zone; ?>;
  6.  
  7.    // province
  8.    $('select[name="location[province]"]').val(province).change();
  9.  
  10.    // city
  11.    content = '/get?op=1&id=' + province + '&list=1&admin=1';
  12.    $('select[name="location[city]"]').load(content, function() {
  13.        $(this).select2(); // reinstanciar el plugin
  14.        $(this).val(city).trigger('change');
  15.    });
  16.  
  17.    // zone
  18.    content = '/get?op=1&id=' + city + '&list=2&admin=1';
  19.    $('select[name="location[zone]"]').load(content, function() {
  20.        $(this).select2();
  21.        $(this).val(zone).trigger('change');
  22.    });
  23.  
  24. });

Las tres variables están bien, abro el código fuente de la página y puedo ver que cada una tiene el número (entero).

¿Alguien sabe cual puede ser el problema?

Gracias!
173  Programación / PHP / Re: regex para email catastrophic backtracking en: 20 Abril 2016, 17:32 pm
Si, y se te olvidaron las _ xD (un email sin _?  ;D)

Parece que lo mejor es strlen(), 100 para todo, más flexibilidad.
174  Programación / PHP / Re: regex para protegerse de varios ataques en: 20 Abril 2016, 17:13 pm
Hmmm imprimir dentro de los atributos es necesario en algunos casos, por ejemplo yo lo estoy haciendo para que el usuario pueda modificar sus datos personales, o para que se puedan cambiar datos anteriormente guardados en la DB (que es lo mismo), imprimirendo dentro del atributo value="". Entonces validando con los regex que solo se permitan ciertos carácteres me evito que se pueda guardar código ejecutable en la DB.

Lo básico creo que lo tengo cubierto: el XSS, prepared statements y un servidor estático (sin PHP, donde alojo el css, jscripts...) donde se suben imágenes (el nombre se genera con el número del for y la extensión solo jpg) y .htaccess configurado para que no se pueda navegar por ningún directorio. Para lo de los ataques de fuerza bruta, estoy terminando una clase (flood_detection) que detecte este tipo de ataques y de paso me aseguro que ningún graciosillo sature el servidor con peticiones.

He comentado lo de UTF-16 por casualidad, porque buscando una manera de aceptar carácteres internacionales en regex, me encontré con este post en stackexchange hablando de anonymus que habia cerrado una web de pornográfia infantil en la red tor usando este tipo de codificación.

Por lo que he podido entender es un problema de que php no soportaba utf-16 y el filtro lo deja pasar, normalizando los carácteres y siendo interpretados... Supuestamente lo deberían haber arreglado en php 7.

Gracias!
175  Programación / Desarrollo Web / Re: regex para filtrar caracteres especiales en jquery en: 20 Abril 2016, 16:28 pm
Si, por supuesto, olvidé mencionarlo. También tengo los mismos regex validando que el string coincida en php.

Esto es simplemente para que el usuario sepa que dichos carácteres no están permitidos y que si hackea su lado de cliente, al enviar el formulario dará error y tendrá que empezar de nuevo. Ya que es un formulario bastante extenso, que no se diga que no he avisado  ;D

Sobre el plugin, no tiene porque bloquear, también puede mostrar un mensaje de error diciendo que nose permiten dichos carácteres y que no deje enviar.

Edito: Creo que mejor voy a utilizar el atributo pattern de html5 y con jquery mostrar un error en caso de no validar.
176  Programación / PHP / Re: regex para email catastrophic backtracking en: 19 Abril 2016, 13:21 pm
Aaah vale, ya decia yo que algo parecia extraño. Entonces un límite de carácteres válido sería ponerlo delante de una clase de caráctares, no en un grupo nesteado que no tiene límite.

Código
  1. /^([\w\s]{4,10})$/

Para casos de grupos nesteados ¿es mejor usar la función php strlen()? o ¿hay alguna manera eficiente de hacer esto dentro del regex?

De todas maneras parece que si uso strlen() le doy más flexibilidad al usuario con el limite de carácteres. 100 carácteres maximos para un email está bien, ¿no?
177  Programación / PHP / regex para email catastrophic backtracking en: 19 Abril 2016, 06:24 am
Estoy creando mi propio regex para validar emails pero no consigo hacer funcionar el límite de carácteres de los dos primeros grupos, el tercer grupo si que valida bien el máximo.

Código
  1. /^([\w]+(?:[\.\-][\w]+)*){1,64}@([\w]+(?:[\.\-][\w]+)*){1,64}\.([a-zA-Z]{2,7})$/

Si no me equivoco el error quiere decir que está mal optimizado y le da carga innecesaria al procesador, no?

Como se puede leer, lo que busco es que los guiones actuen de la misma manera que los puntos, que no se puedan poner delante ni detras, solo entre dos caracteres \w. Tanto para el nombre de usuario como para el nombre de dominio.

Gracias!
178  Programación / PHP / Re: regex para protegerse de varios ataques en: 19 Abril 2016, 06:13 am
No soy un experto en este tipo de cosas, pero creo que este es un ejemplo: http://downloads.securityfocus.com/vulnerabilities/exploits/37389.php

De eso hablan aquí en el foro (hace 6 años ya) https://foro.elhacker.net/nivel_web/php_htmlspecialcharacters_malformed_multibyte_character_xss-t281271.0.html
y aquí también hablan de esto (en ingles pero mejor explicado): http://stackoverflow.com/questions/19584189/when-used-correctly-is-htmlspecialchars-sufficient-for-protection-against-all-x

Pero al parecer solo afecta a versiones viejas, o eso creo haber entendido... (que a estas horas...  ;D)

Si, abriré mejor otro tema para el regex del email.

Tengo que leer sobre otros ataques del tipo user input, ¿conoces alguno más? Quiero hacer mis aplicaciones web más seguras (o lo mínimo por lo menos).

EDITO: ¿Entonces es seguro usar codificación UTF-16 para user input? Me refiero al flag /u de regex para poder usar \pL
179  Programación / PHP / Re: regex para protegerse de varios ataques en: 19 Abril 2016, 05:16 am
He leido que si está malformado se ejecuta el código, por eso no me he querido arriesgar. Tambien he leido que hacer una lista blanca con los carácteres permitidos es más seguro. Prefiero ir a lo seguro.

¿Podeis decirme por qué el siguiente regex para emails me da error "catastrophic backtracking"?

Código
  1. /^([\w]+(?:[\.\-][\w]+)*){1,64}@([\w]+(?:[\.\-][\w]+)*){1,64}\.([a-zA-Z]{2,7})$/

Lo he hecho yo y me parece eficiente... no sé que puede pasar. Además el limite de 64 no fuciona, poniendo más se sigue validando, el del tercer grupo si que funciona... que raro.

Gracias!
180  Programación / PHP / Re: regex para protegerse de varios ataques en: 19 Abril 2016, 03:28 am
Ah no, era un ejemplo, está claro que ese tipo de carácteres que no supone ningún riesgo se puede añadir sin ningún problema y seguiría siendo igual de seguro.

Por ejemplo para nombres:
Código
  1. '~[^\pL\d\r\']+~u'

Si no me equivoco \r era espacio normal y comillas simples. Las eñes, ç y demás carácteres internacionales van incluidos.

Si es un comentario se cambia \r por \s y para los demás simplemente se añade el carácter con \.

Pero lo que me interesa es el tema seguridad, ¿que más hay que tener en cuenta?
Páginas: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ... 75
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines