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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
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 ... 36
171  Programación / Desarrollo Web / [Pregunta]: Meta http-equiv="refresh" en: 11 Diciembre 2019, 01:01 am
Buenas noches,

tengo en la cabecera de html

Código
  1. <head>
  2.     <noscript>
  3.           <meta http-equiv="refresh" content="0; URL=http://localhost/aplication/no_script">
  4.     </noscript>
  5. </head>
  6.  

Lo que va a hacer es que cuando detecte que javascript está desactivado en el cliente del usuario lo va a redireccionar a otra pagina donde le pedirá que active JS para poder usar la aplicación. El problema es que yo quiero que redireccione creo que se dice del path si esta mal corriganme sería... poner solamente "no_script" para la redirección y no toda esa ruta completa con http:// etc
172  Programación / Desarrollo Web / [Pregunta]: ¿Como puedo hacer que si son 4 espacios seguidos...? en: 9 Diciembre 2019, 00:31 am
Buenas noches,

¿Como puedo hacer que si en una cadena hay 4 o más (>= 4) lineas en blanco "\n" seguidas estas se transformen en 3 con php

sería algo así:

"Hola,




Acá de nuevo, arriba hay 4 lineas en blanco"


"Hola de nuevo,








Acá de nuevo, arriba hay 8 lineas en blanco"

el programa debería transformarlo en esto =>
"Hola de nuevo,



Arriba hay ahora 3 lineas en blanco"
173  Programación / Desarrollo Web / [Aporte]: Sistema Anti ataques CSRF en: 8 Diciembre 2019, 23:49 pm
Sistema anti ataques CSRF

Con este pequeño sistema se espera que los ataques CSRF ya no nos afecten, este es el segundo aporte que hago. El primero era un contador de llaves donde se podía ingresar un código y el programa iba a devolver la cantidad de llaves abiertas y cerradas.

Con esto quiero decir que este es mi primer aporte "avanzado" para mi así que por eso muy posiblemente existan fallos o áreas donde el código pueda ser mejorado.

El sistema lo que hace es crear tokens de seguridad de clave única cifrada, yo lo uso para evitar ataques en las paginas donde existan formularios, donde se use $_GET como por ejemplo un perfil (profile.php?id_user=x) y también lo uso en ficheros AJAX (realmente no estoy seguro si es necesario pero quería que en todas las partes de mi aplicación web donde se ejecuten funciones importantes exista este control de seguridad)

Con este código espero que me lluevan criticas, sugerencias para que podamos mejorarlo entre todos.

En principio creo 6 funciones, creo que esta de más decir que uso PHP para esto pero quería aclararlo.

La primera función servirá para crear un código de 22 caracteres unos 20 números + 2 letras en mayúsculas.
Código
  1. function Create_Code()
  2. {
  3. $year_code = date('Y');
  4. $month_code = date('m');
  5. $day_code = date('d');
  6. $hour_code = date('H');
  7. $minute_code = date('i');
  8. $second_code = date('s');
  9.  
  10. $random_code_A = rand(100000, 999999);
  11. $random_code_B = chr(rand(ord('A'), ord('Z')));
  12. $random_code_C = chr(rand(ord('A'), ord('Z')));
  13.  
  14. $result = ($random_code_A).($year_code).($month_code).($day_code).($hour_code).($minute_code).($second_code).($random_code_B).($random_code_C);
  15.  
  16. return $result;
  17. }
  18.  

La segunda función servirá para crear un token determinado para cada pagina que exista en nuestra aplicación.
Código
  1. function Create_Token($page)
  2. {
  3. if(is_string($page))
  4. {
  5. if(!isset($_SESSION['token_'.($page)]))
  6. {
  7. $token_csrf = Create_Code(); // Creamos un codigo unico
  8. $token_csrf = Hash_Data($token_csrf); // ciframos el codigo lo que nos va a dar una cadena de 60 caracteres
  9. $_SESSION['token_'.($page)] = $token_csrf; // se crea una session con el token generado
  10. }
  11. }
  12. }
  13.  

La funciòn hash_data (me había olvidado de ponerla, gracias por el aviso!)
Código
  1. function Hash_Data($data) // El tipo de cifrado es general, con esto quiero decir que uso esta función para cifrar contraseñas, códigos de activación de un email, etcétera, ustedes pueden usar el que quieran pero en mi aplicación como norma general uso este.
  2. {
  3. $result = 'Error';
  4.  
  5. if(is_string($data))
  6. {
  7. $result = password_hash($data, PASSWORD_BCRYPT);
  8. }
  9.  
  10. return $result;
  11. }
  12.  

La tercera función servirá para crear una lista de tokens (acá van a tener que poner todas las paginas que van a usar tokens, donde usen formularios, peticiones $_get, o ajax)
Código
  1. function Create_Tokens()
  2. {
  3. // Ajax
  4. Create_Token('ajax'); // acá recomiendo que creen un solo token para validar ficheros ajax
  5.  
  6. // Pages ($_POST or $_GET)
  7. Create_Token('login'); // este token pertenece a login.php donde estará el formulario de acceso
  8. }
  9.  

La cuarta función servirá para validar un token determinado.
Código
  1. function Validate_Token($page, $value)
  2. {
  3. $result = false;
  4.  
  5. if(is_string($page) && is_string($value))
  6. {
  7. if(isset($_SESSION['token_'.($page)]))
  8. {
  9. if(!empty($_SESSION['token_'.($page)]) && $_SESSION['token_'.($page)] === $value)
  10. {
  11. $result = true;
  12. }
  13. }
  14. }
  15.  
  16.    return $result;
  17. }
  18.  

Ahora vamos a ponerlo en práctica, por supuesto todas las funciones de arriba deberían ponerlas en una libreria que ustedes pueden crear e incluirla en todas sus paginas php incluyendo "Create_Tokens();" pero para este ejemplo vamos a dejarlo acá.
Código
  1. <!-- login.php -->
  2. <?php
  3. Create_Tokens();
  4. ?>
  5.  
  6. <form method="post">
  7.     <input type="text" name="el_texto"></input>
  8.     <input type="hidden" name="token_csrf" value="<?php echo($_SESSION['token_login']); ?>"> // Acá va a ir su token, fijense que le puse "token_login" esto tiene que ir personalizado dependiendo en que paginas lo usen
  9.      <button type="submit" name="el_submit"></button>
  10. </form>
  11.  
  12. <?php
  13. if(isset($_POST['el_submit'])) // cuando se envia el formulario
  14. {
  15.     if(isset($_POST['token_csrf']) && Validate_Token('login', $_POST['token_csrf']))
  16.     {
  17.        echo "mandaste ".$_POST['el_texto'];
  18.     }
  19.     else
  20.     {
  21.          echo "Se detecto un ataque CSRF";
  22.     }
  23. }
  24. ?>
  25.  

Bueno ahora vamos a aplicar esto a una pagina que use $_GET como por ejemplo un perfil.
Código
  1. <!-- profile.php -->
  2. <?php
  3. if(isset($_GET['id_user']) && isset($_GET['token_csrf']))
  4. {
  5.    $_GET['token_csrf'] = urldecode($_GET['token_csrf']);
  6.  
  7.    if(Validate_Token('token_profile', $_GET['token_csrf']))
  8.    {
  9.        [Ejecución]
  10.    }
  11.    else  
  12.    {
  13.        [Interrumpimos, redirigimos, etcétera] // ya que no es valido el token
  14.    }
  15. }
  16. else
  17. {
  18.     [Interrumpimos, redirigimos, etcétera]
  19. }
  20. ?>
  21.  

Cuando vayamos a redirigir a el usuario a una pagina donde se use $_get debe de ser así...
Código
  1. window.location.href = 'profile.php?id_user=<?php echo urlencode($id); ?>&token_csrf=<?php echo urlencode($_SESSION['token_profile']); ?>';
  2.  

En ajax sería así:
Código
  1. // ajax/fichero.php
  2. if(Validate_Token('token_ajax', $_POST['token_csrf'])) // $_POST['token_csrf'] depende de si en ajax ustedes usan GET o en este caso POST
  3. {
  4.     [Ejecución]
  5. }
  6. else
  7. {
  8.     [Interrupción]
  9. }
  10.  


Espero que les guste y si lo quieren usar que me comenté si les gusto, escucho criticas como ya dije y entre todos poder ir mejorando este sistema. Gracias!
174  Programación / Desarrollo Web / [Pregunta]: ¿Como puedo hacer esta lógica "ver más"? ya casi lo tengo terminado en: 8 Diciembre 2019, 21:07 pm
Buenos días,

hace unos días había publicado un tema donde preguntaba sobre un sistema de ver más, la idea es que se va a obtener una cadena donde se va a hacer varias preguntas y en base a estas se ejecutara un resultado. Hice este algoritmo pero no se como puedo seguirlo, estoy en un bloqueo y no consigo entender.

Lo que espero que haga el "programa" es que a partir de una cadena sobre si esta es muy grande (mb_strlen($cadena) >= 250) esta se acorte mostrando las primeras 250 letras y al final concatenar "..." y un botón "Ver más" hasta acá no hay ningun problema es más el programa hasta acá funciona pero hay "huecos" que no puedo cubrir, la verdad si que estoy bloqueado.

Digamos que en la cadena hay saltos de lineas este ya es otro panorama diferente porque la cadena puede ser

"a
b
c
d
e
.. así hasta 249 letras
" si ustedes se fijan si yo aplico la solución que ya hice no va a hacer nada ya que es menor a 250 caracteres entonces lo va a mostrar completo pero va a ser muy alto, para que puedan entender se puede tomar como ejemplo alguna red social como facebook que al pasar x cantidad de caracteres una publicación esta se va a "minimizar" pero no se como puedo cubrir los saltos de líneas.

Hice este algoritmo pero no puedo entender,

Espero que se entienda porque la pagina desde donde hice el algoritmo es una verg# y le pusieron como 500 marcas de agua los crotos estos xD

cualquier cosa me dicen y lo hago desde otro lado



Muchas gracias, no hace falta que manden código ni nada de eso no quiero que me hagan el programa ustedes nada más que me puedan dar una mano con esta parte final en cuanto a lógica.
175  Foros Generales / Foro Libre / ¿Por qué hay gente que programa así? en: 8 Diciembre 2019, 06:19 am
¿Por qué existe gente que usa el "theme" color blanco para programar? ¿Que onda no les duele los ojos o que?
176  Programación / Desarrollo Web / [Pregunta]: "A cookie associated with a cross site resources" Google Recaptcha en: 7 Diciembre 2019, 20:17 pm
Buenos días,

ya pude descubrir de donde viene este warning "A cookie associated with a cross site resources at ..."

El warning aparece en las paginas donde uso recaptcha de google es la v2.

Buscando por ahí encontré que poniendo este fragmento se puede "solucionar"

Código
  1. response.setHeader('Set-Cookie', 'HttpOnly;Secure;SameSite=Strict');
  2.  

Tengo 2 problemas con esto,

1. No entiendo que es lo que hace este código, solamente que supuestamente ese warning ya no va a joder/molestar.
2. Intente poniendo en un <script> (javascript) ya que si no estoy equivocado eso es js... pero me da un error "reference error response is not defined" lógicamente me dice que la variable response no existe lo cual es correcto pero como tampoco se donde meterlo ni para que sirve por eso, una vez que sepa para que sirve y donde meterlo voy a saber como definir la variable "response"

Con que me respondan por lo menos 1 me sirve muchisimo, Gracias!  ;-)
177  Programación / Desarrollo Web / [Pregunta]: ¿Mostrar un mensaje alerta en la consola para evitar ataque? en: 7 Diciembre 2019, 19:07 pm
Estuve investigando y encontre un ataque que se llama self-XSS y es cuando una persona sin darad cuenta ingresa código en la consola para desarrolladores...

En facebook hay muchas estafas donde te dicen algunos burros  :xD que si escribis x codigo en la consola te van a llegar 3000 solicitudes (no puedo creer que la gente caiga en esto jaja pero bueno) una vez que se ingreso el codigo en la consola te pudieron haber robado información relevante de tu cuenta...

Facebook como otros sitios lo que hace es que al momento de que cualquiera abra su consola este muestre un mensaje tipo "html" es decir no se usa alert o console.log donde le dice que bueno que si alguien le dijo que escriba algo aca tenga cuidado, etc...

Si se van a facebook y abren la consola se van a dar cuenta de lo que hablo...

¿Como puedo mandar un mensaje por consola similar al que se usa para tratar de wvitar estos ataques?

Perdón si escribo medio mal ando en el teclado del telefono y está complicado xd
178  Programación / PHP / [Pregunta]: Contar saltos de lineas de una cadena (PHP) en: 4 Diciembre 2019, 14:36 pm
Buenos días,

¿Como puedo contar la cantidad de saltos de lineas que tiene una cadena en PHP? ¿Hay alguna función que tenga PHP para hacer esto?
179  Programación / Desarrollo Web / [Pregunta]: Detectar cambió en un input en especifico (JS) en: 4 Diciembre 2019, 14:15 pm
Buenos días,

tengo un formulario ("id_form") en el cual tengo 2 inputs uno que tiene name="username" y name="pass"

Código
  1.        $('#id_form').on('change',function() // detecto si se produjo un cambio en el formulario entero
  2.        {
  3.            if(id_form.input_username.onchange) // quiero que si el cambio se produjo en el input username
  4.            {
  5.                alert('1');
  6.            }
  7.            else if(id_form.input_pass.onchange) // quiero que si el cambio se produjo en el input pass
  8.            {
  9.                alert('2');
  10.            }
  11.        });
  12.  

Como esta el código no da errores pero tampoco sirve, no hace nada.
Probé de otras maneras pero tampoco me servían porque me daban errores, quiero hacerlo de esta manera para no tener que estar poniendo una id="" a cada campo o un onchange, es muy tedioso y prefiero hacerlo así...
180  Programación / Desarrollo Web / [Pregunta]: Anti-CSRF 2.0 (Dilema) en: 4 Diciembre 2019, 13:30 pm
Buenos días,

hasta día de hoy mi protección para ataques CSRF es generar un token de seguridad o aleatorio para cada formulario, es decir si yo entro a la pagina login, efectivamente me va a generar un token con el nombre del formulario, "token_csrf_form_login" quedando así $_SESSION['token_csrf_form_login"] después si entro a el formulario de registro $_SESSION['token_csrf_form_registry'] cada una de estas sessiones va a tener un token diferente pero hay un problema con este método y es que si la persona esta con dos formularios iguales a la misma vez se va a generar un problema...

[Page A (Registry)] [Page B (Registry)]

Primero va a generar un tocken para form_registry, después cuando vuelva a abrir el mismo formulario desde otra ventana o pestaña va a volver a generar el token y va a dejar obsoleto el anterior, por lo que el formulario que se abrió primero quedará inoperable, va a terminar dando un error para la primera pestaña o ventana que haya.. cargado el formulario antes.

Buscando por ahí varias formas de crear token se sigue un patrón (es material del 2011 a el 2014) generar el token una vez que el usuario se logea.

[Usuario inicia sesión]
[Genera tocken anti CSRF] => $_SESSION['token_csrf'] = [Dato aleatorio];
y todos los formularios u otros métodos que requieran este tipo de seguridad van a compartir el mismo token (por lo menos hasta que el usuario se desconecte, ahí ya se destruyen todas las sessiones).

¿Qué opinan de esto? ¿Se inclinan por la opción A u opción B?
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 ... 36
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines