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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31
1  Programación / Desarrollo Web / [Pregunta]: ¿Cómo saber si es un ENTERO o FLOTANTE en PHP? en: 12 Mayo 2021, 22:39 pm
Es algo trivial pero estoy teniendo problemas, no encuentro una función para saber si es ENTERO o FLOTANTE un número.
Estuve viendo pero no la encuentro, ya sé que existe is_int e is_float pero quiero que sea como is_numeric.

Quiero decir, is_numeric si le das como valor '3500' (cadena pero con numero dentro) devolverá true pero si pongo is_float('3500.78') esto me va a dar false porque no interpreta el numero que está en la cadena. Lo mismo pasa si fuera is_int('3500').

Pasa que como ya sabrán todo los datos que envía un formulario los devuelve en cadena.
¿No hay una función para eso?

EDIT:
Se me ocurrió algo "cutre" por así decirlo, y es que podría preguntar si dicha cadena tiene punto y si tiene punto quiere decir que en principio es un decimal entonces uso floatval('x');

IS_NUMERIC(x)
      TIENE_PUNTO(x)
             FLOATVAL(x)
      NO TIENE PUNTO
             INTVAL(x)

Por ahora tengo esto.
2  Programación / PHP / [Pregunta]: ¿Qué estoy haciendo mal con esta consulta PDO? en: 4 Mayo 2021, 00:21 am
Estoy mejorando todas mis consultas, antes usaba este método:

Código anterior (siempre use esto y funciona correctamente), como "dato curioso" en esta consulta sino concateno '.($by).' no me devuelve datos, es decir que no puedo usar :by en la consulta. No entiendo por qué (si me pudieran ayudar con eso también)
Código
  1. $con = Connection(USERNAME, PASSWORD);
  2. $query = $con->prepare('SELECT id_album FROM albums WHERE '.($by).' = :by_value');
  3. $query->execute(array(':by_value' => $by_value));
  4. $results = $query->fetchAll();
  5.  

Pero viendo un poco parece ser que hacerlo de la siguiente manera es más eficiente y seguro:
Pero me dice "Uncaught Error: Call to a member function bindParam() on bool" busqué el error pero veo ninguna relación con lo que escribí, lo ví varias veces pero parece que todo está correcto.
Código
  1. $con = Connection(USERNAME, PASSWORD);
  2. $query = $con->prepare('SELECT id_album FROM albums WHERE :by = :by_value');
  3. $query = $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  4. $query->bindParam(':by', $by);
  5. $query->bindParam(':by_value', $by_value);
  6. $query->execute();
  7. $results = $query->fetchAll();
  8.  
3  Programación / Bases de Datos / [Pregunta]: ¿Cómo hacer esta consulta 2? en: 23 Abril 2021, 00:07 am
Hola,

bueno la anterior consulta ya la hace correctamente ahora tengo problemas con esta otra que es muy similar. Para este caso ya no va a eliminar las tentativas de un usuario si este llego a 6 sino que las va a eliminar si son 1 o 5 tentativas pero las eliminará si la fecha (unix) de creación tiene una antiguedad de 12 horas o más. (pero solo se evalua la más reciente)

Es decir, como son los unix no son mas que numeros enteros lo que hago para evaluar la mas reciente y ver si tiene esa antiguedad de 12 horas es tomar dentro de todos los registros/tentativas del usuario el unix mas grande.

Es decir:
Código
  1. $query = $con->prepare('DELETE FROM attempts WHERE id_user IN (SELECT A.id_user, MAX(A.unix_date) FROM attempts A INNER JOIN users U ON A.id_user = U.id_user WHERE (:unix_grace_delete_attempts >= MAX(A.unix_date)) AND U.login_banned = 0 GROUP BY A.id_user HAVING COUNT(*) >= 1 AND COUNT(*) <= 5');
  2. $query->execute(array(':unix_grace_delete_attempts' => $unix_grace_delete_attempts));
  3.  

Siempre uso BETWEEN en vez de hacer COUNT(*) >= 1 AND COUNT(*) <= 5 pero mientras mas simple de entender la consulta mejor para todos.

En relación a sobre qué es $unix_grace_delete_attempts lo que le estoy haciendo es restarle a el unix actual unas 12 horas.

Código
  1. $unix_now = time();
  2. $unix_grace_delete_attempts = strtotime('-12 hours', $unix_now);
  3.  
4  Programación / Bases de Datos / [Pregunta]: ¿Cómo puedo hacer esta consulta? en: 21 Abril 2021, 19:58 pm
Hola,

tengo una tabla 'attempts' donde guardará todas las tentativas erróneas de login de los usuarios,  como máximo pueden llegar a tener 6 tentativas.

Ejemplo:
Código
  1. * ID_USER IP
  2. 1. 37  ::1
  3. 2. 37  ::1
  4. 3. 37  ::1
  5. 4. 37  ::1
  6. 5. 37  ::1
  7. 6. 37  ::1
  8. 7. 79  225.341.63
  9.  

Básicamente tenemos 6 tentativas del usuario 37 y una tentativa en la cuenta del usuario 79 (id_user de attempt ya está relacionado con el id_user de users)

Hecho eso ahora necesito que por medio de una consulta eliminar todas las tentativas a uno de estos usuarios si llega a tener 6.

Código
  1. "DELETE FROM attempts WHERE [Aquellos usuarios que tengan = 6 tentativas]"
  2.  
5  Programación / PHP / [Pregunta]: Modificar la variable original en PHP en: 30 Marzo 2021, 18:44 pm
Hola,

tengo 2 archivos PHP donde en el primer archivo tengo definida una función:
Código
  1. function myFunction($variable)
  2. {
  3.      $variable = 3;
  4. }
  5.  



En mi segundo archivo PHP tengo definida $variable (no es un parámetro como antes), y una llamada a myFunction()
Código
  1. $variable = 7;
  2. myFunction($variable); // entonces le mando por parámetro la variable a la que le quiero modificar el valor
  3.  

Entiendo que con return en la función y $variable = myFunction($variable); asunto arreglado pero necesito hacerlo de esta forma (si es que se puede).

Capaz usando global $variable o algo así, se pueda hacer algo...
6  Programación / Desarrollo Web / [Pregunta]: ¿Existe un script (JS) para eliminar los datos en la memoria caché? en: 22 Marzo 2021, 04:14 am
La idea es saber si hay disponible algún script que al ser ejecutado elimine todos los datos de la memoria caché o al menos aquella información almacenada sobre mi aplicación web como imágenes por ejemplo.

El objetivo de encontrar este script es que cada vez que yo mejoro mi código, agrego cosas, edito cosas (como imágenes por ejemplo) estas se vean reflejadas sin que el usuario tenga que darle al "CTRL + F5".

Ya tengo un sistema de versiones donde yo para agregar una versión completo un formulario, donde escribo el título (v1.0.0), y luego las mejoras correspondiente a dicha versión.

Con el script (si es que existe) + este sistema que ya tengo, creo que puedo armarme algo para esto.
7  Programación / Desarrollo Web / [Pregunta]: Formato de imágenes "image/webp" en: 5 Marzo 2021, 05:22 am
Hola,

bueno estaba viendo que existe este formato para las imágenes además de los tradicionales ya conocidos como jpg (o jpeg), y png (sé que hay otros pero estos son los más comunes) el tema es que quiero que a partir de ahora mi aplicación acepte imágenes webp pero tengo una duda y es que no estoy seguro si las imágenes webp también existen imágenes sin fondo como lo son las de png.

Es decir, como es un formato nuevo para mi no se si dentro del formato webp puede venir una imagen sin fondo como lo sería una de .png

(( Yo valido siempre antes el mimetype de las imágenes )).

En la aplicación se permiten en lo posible todas las imágenes mientras que no sean png (sin fondo),

- image/jpg
- image/jpeg
- image/webp

no sé cual más debería incluir...
8  Programación / Desarrollo Web / [Pregunta]: Lógica para un sistema de seguridad contra ataques de fuerza bruta en el login en: 12 Febrero 2021, 23:45 pm
Básicamente estoy pensando como podría hacer un sistema nuevo de seguridad que prevenga ataques de fuerza bruta en el login.

Es decir, que un usuario determinado intente constantemente con diferentes contraseñas (se espera que tenga un diccionario de contraseñas) hasta poder ingresar a la cuenta de la victima.
Me vinieron algunas ideas pero como todo está muy fresco seguro hay cosas que estoy dejando pasar.

El sistema funcionaría de la siguiente manera, cada vez que un usuario ingrese una contraseña incorrecta el sistema le incrementará a +1 una variable que podemos llamar "attempt" (no estoy seguro si en una $_SESSION o en un campo nuevo en la bd para la cuenta de usuario que aplique), al llegar a las 40 tentativas lo que ocurrirá sería bloquear el login para ese usuario. Absolutamente nadie podrá iniciar sesión en esa cuenta por lo menos durante un periodo de tiempo que aún no defino bien, quizás una 6 horas no estoy seguro.

Por supuesto puede ocurrir que la persona que desee ingresar sesión sea el propio usuario, no el atacante. Entonces se le podría enviar un mail justo en el momento de bloquear el login explicándole lo ocurrido, recomendándole el uso de una contraseña segura, por supuesto algo que se me ocurrió es poder darle la posibilidad a el dueño de la cuenta en las opciones de privacidad de querer que su cuenta quede bloqueada (el login) ante estos casos o que no quede.

En fín, en el correo que se le enviará se le dirá que además de la recomendación del uso de contraseñas seguras y esa opción nueva de privacidad, estaría un código que deberá ingresar en un determinado formulario para que se pueda desbloquear el login nuevamente sin que tenga que esperar las 6h.

Es una idea muy fresca así que espero puedan darme más ideas, o mejoras a todo esto.
9  Programación / PHP / [Pregunta]: ¿Cómo sería el equivalente de este código JS en PHP? en: 12 Febrero 2021, 22:30 pm
No necesito que me hagan todo el algoritmo, pero hay cosas como .match de javascript que nosé cual sería en PHP.

Código
  1.                                var expression_lower = new RegExp('[a-z]');
  2. var expression_number = new RegExp('[0-9]');
  3. var expression_symbol = new RegExp('([!,%,&,@,#,$,^,*,?,_,~])');
  4. var expression_upper = new RegExp('[A-Z]');
  5. var security = 0;
  6.  
  7. if(string.match(expression_lower))
  8. {
  9. security = security + 1;
  10. }
  11.  
  12. if(string.match(expression_number))
  13. {
  14. security = security + 1;
  15. }
  16.  
  17. if(string.match(expression_symbol))
  18. {
  19. security = security + 1;
  20. }
  21.  
  22. if(string.match(expression_upper))
  23. {
  24. security = security + 1;
  25. }
  26.  
  27. if(string.length >= 8)
  28. {
  29. security = security + 1;
  30. }
  31.  
10  Programación / Desarrollo Web / [Pregunta]: Definir un arreglo vacío (javascript). en: 3 Enero 2021, 22:32 pm
Hola,

¿Cómo podría definir un arreglo vacío?
Me explico...

Código
  1. var formdata = new FormData();
  2. var my_array = []; // esto es un arreglo vacío, si por consola imprimimos este dato nos va a devolver: []
  3.  
  4. for(var i = 0; i < my_array.length; i++)
  5. {
  6.      formdata.append('my_array[]', my_array[i]);
  7. }


Como el tamaño del arreglo es 0 porque está vacío, no va a entrar en ninguna interacción y no va a agregar dicho arreglo.

Intenté con algunas otras maneras pero siempre me termina agregando un dato vacío.. "" cuando lo llamo con formdata.get('my_array[]'); y lo que yo quiero que devuelva sea: [] que significa arreglo vacío.


Mod: Sacados los comentarios a texto para mejor lectura.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines