Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Leguim

#311
Una banda de respuestas  :xD pero no hacia falta todo eso, yo decía si acarreaba una vulnerabilidad no volver a definir x variable en este caso $_GET

Respondiendo: La aplicación web está en desarrollo por eso no tengo una URL que mandarles para que la vean.

A lo que iba era digamos que yo tengo un comentario que quiero editar, yo me ilustro o imagino que hay como "2 procesos" el "protocolo de seguridad entrante" y el "protocolo de seguridad de envío" (esto me lo invente yo  :xD por si les suena raro)

Bueno el protocolo de seguridad entrante se va a encargar de validar si el usuario tiene permisos para ingresar a x pagina.php

Por ejemplo si el usuario tiene la session iniciada, si el usuario no está bloqueado, si el usuario tiene el email verificado, entre tantas otras que pueda tener una aplicación... dependiendo el caso va a redireccionarlo a otras paginas... por ejemplo si no tiene la session iniciada lo manda a el index pero si si tiene la session iniciada pero esta baneado lo mando a ban.php y así hasta completar todos los protocolos.

Después está el protocolo de seguridad de envío que es cuando un usuario envía un formulario... Generalmente van a compartir el mismo protocolo pero con una diferencia y es que el protocolo de envío va a preguntar si la $session_id es igual a $_SESSION['id_user']

hay les explico (me va a salir tremendo texto bíblico pero así se entiende xD)

Ejemplo:

Código (php) [Seleccionar]

// protocolo de seguridad entrante
[Si hay sessión iniciada]
     -> [Si usuario no esta bloqueado]
           -> [Se mantiene a el usuario en la pagina]
                [Creo una variable $session_id que va a tener el valor de $_SESSION['id_user']
     [Si no: mando -> ban.php]
[Si no: mando-> index.php]


Imaginen que una persona tiene abierto una pagina comentar.php que requiere que el usuario tenga una session inciada pero ese mismo usuario abre otra pagina comentar.php, hay ahora 2 pestañas abiertas con el mismo fichero... ahora en la primer pestaña va a cerrar su sesión por lo que lo va mandar a el index pero recordemos que dejó abierta otra donde se ve la pagina como si tuviera la sesión todavía iniciada, gracias a el protocolo de envío lo que va a hacer es que cuando el usuario que tiene una pagina abierta que requiere tener la sessión iniciada pero no la tiene lo que va a hacer es redirigirlo cuando intente usar el formulario...

Ahora gracias a session_id lo que va a hacer es que imaginemos ahora que el usuario tiene 2 cuentas, y abre esas 2 pestañas con el mismo fichero php cierra la sesión en una, pero le quedo la otra abierta y vuelve a ingresar a otra cuenta diferente pero ahora tenemos (1). comentar.php con una cuenta (X) y tenemos comentar.php con una cuenta (Y) ...

el protocolo de envio se va a quedar corto porque si va  a detectar que hay una session abierta, no puede decir si es la misma de antes pero si que hay una... entonces con session id lo que hago es compararlas

$session_id == $_session['id_user'] ?

Lo que trato de mostrar con esto (igual ya deben saber) es que cuando el usuario use el formulario van haber datos que se van a "actualizar" que no van a seguir siendo iguales...

Código (php) [Seleccionar]

<?php
$comentarios 
comentarios::Mostrar_Comentarios(); // Muestra todos los comentarios
$comentarios count($comentarios); // contamos todos los registros

echo $comentarios// hay 3 comentarios
?>


Ahora imaginemos cuando el usuario manda un formulario

<?php
if(isset($_POST['ver_otravez']))
{
     
$comentarios comentarios::Mostrar_Comentarios(); // Muestra todos los comentarios
     
$comentarios count($comentarios); // contamos todos los registros

     
echo $comentarios// capaz acá pueda mostrar 4 o 5 o capaz menos comentarios, 2 comentarios... porque desde que yo abro la pagina hasta que yo mando un formulario pueden mostrarse datos diferentes (actualizados)

     
Si yo acá no volvía a definir la variable $comentarios se iba a quedar con un valor viejo que era el 3
}
?>



A eso iba cuando preguntaba si tenia que volver  a definir variables cuando envío el formulario... por ahí un $_GET no se puede actualizar de otra forma que no sea cambiandolo y recargando la pagina por eso preguntaba...
Yo se que es un poco dificil de entender, más que nada no porque sea dificil sino porque explico para la mrd xD
#312
Cita de: engel lex en 19 Diciembre 2019, 15:47 PM
pueden hacerte una inyeccion reflejada, no te afecta a ti, pero si a usuarios incautos...

si el link pasas

url...com/?variable=nuestra+empresa+informa+que+usted+es+estupido

mostrará eso... y mucha gente cae... antes hasta los periodicos salian "defacearon X pagina, violaron a su seguridad y a sus dueños"

Lo que hago para eso (aunque no tenía noción) es validarlo, si en principio yo espero que el dato sea int, string, etc, también si es string que tenga un max de caracteres...

Volviendo a eso, esto de "inyección reflejada" ¿es solamente para decirle a el usuario un "mensaje falso" más allá de que esa variable puede ser usada como parámetro en una función, el único peligro real sería ese... ¿no? más allá de si se creen que los llame estúpidos xD... ¿no existiría una vulnerabilidad y no haría falta definir otra vez la variable como hice antes?
#313
Buenos días,

tengo la siguiente duda y es que no se muy bien si hacer esto acarree algún tipo de vulnerabilidad.

Código (php) [Seleccionar]

<?php
$variable 
$_GET['variable'];
?>


<form method="post">
<button type="submit" name="mostrar">enviar</button>
</form>

<?php
if(isset($_POST['mostrar']))
{
echo $variable;
}
?>



Hasta acá nada raro pero lo que hago hasta ahora es que por "miedo" a que exista alguna vulnerabilidad en el proceso de abajo vuelvo a definir la variable $variable así.

Código (php) [Seleccionar]

<?php
$variable 
$_GET['variable'];
?>


<form method="post">
<button type="submit" name="mostrar">enviar</button>
</form>

<?php
if(isset($_POST['mostrar']))
{
        
$variable $_GET['variable'];
echo $variable;
}
?>




(No traten de buscarle sentido o alguna lógica a el programa es solamente de demostración, por ejemplo un formulario de alguna busqueda que reciba algun dato $_GET y que por esa duda de vulnerabilidad vuelvo a definir cuando el usuario realiza alguna petición)

Tengo noción de que hay que "limpiar" ese dato $_GET antes de pasarlo a una variable tal y como esta, es solo un ejemplo.
#314
Es que no toque nada, y en otros navegadores sirve el foco... brujería xD
#315
Cita de: WHK en 18 Diciembre 2019, 23:34 PM
Nopues, como vas a hacer foco a un objeto que no está presente en la renderización. Debes darle foco al mismo tiempo que lo haces aparecer solamente.

Es que me habia llamado la atencion porque hasta hace 2 días funcionaba bien...
#316
Se me había ocurrido lo de hacerlo con javascript .focus(); la solución fue en parte con el código de abajo que me pasó manolo y digo en parte porque window.onload = function ya lo tenia era lo que usaba para cargar la pagina y probé pero quedaba cargando la pagina eternamente y era por eso porque no se pueden lanzar varias funciones con window.onload http://codexexempla.org/articulos/2007/lanzar_funciones.php así que hice como ellos me dijeron...

Código (javascript) [Seleccionar]

    window.addEventListener('load', function()
    {
    form_index.input_email.focus();
    }, false);


¡Muchas gracias a los dos ya está todo funcionando, espero que google ya no la cague más  :xD!
#317
Ayer me funcionaban perfecto los atributos autofocus="true" o autofocus en un <input> pero hoy ya no me servían más, no aparece una advertencia por consola ni nada solamente no anda no realiza el foco al elemento, estoy pensando que google pudo actualizar algo (cagarla básicamente) porque en otros navegadores a excepción de firefox probé y anduvieron bien...



Para hacerlo simple:

[Contenido de carga] <= Acá hay una ruedita "spinner infinito" que indica que está cargando la pagina.

[Contenido de la pagina] <= Acá va a estar el contenido de la pagina.


¿La pagina está lista?
(Sí): El [Contenido de carga] se oculta y se muestra [Contenido de la pagina].

En el [Contenido de la pagina] esta el input con autofocus="true"

<div> // Elemento superior
      <input type="text" autofocus="true">
</div>

Si el elemento superior tiene un display:none; y luego le digo que tenga display:block; con un ... timeout por ejemplo o en este caso cuando cargue la pagina, cuando este lista (window.ready)

el autofocus ya no lo toma y esto lo pueden probar si quieren,

Código (html) [Seleccionar]

<style type="text/css">
#elemento {
display: none;
}
</style>

<div id="elemento">
<input type="text" name="" autofocus="true">
</div>

<script type="text/javascript">
setTimeout(function() {
document.getElementById('elemento').style.display = 'flex';
}, 1000);
</script>
#318
Buenos días,
estuve escarbando por internet sobre long-polling y encontré este fragmento:

Código (javascript) [Seleccionar]

// long polling
subscribe: (callback) => { // esto no entiendo
   const pollUserEvents = () => { // esto no entiendo
       $.ajax({
           method: 'GET',
           url: 'http://localhost:8080/githubEvents',
           success: (data) => {
               callback(data) // process the data // esto no entiendo
           },
           complete: () => { // esto no entiendo
               pollUserEvents(); // esto no entiendo
           },
           timeout: 30000 // tampoco esto
       })
   }
   pollUserEvents() // esto no entiendo ¿por qué es ejecutado acá?
}


No explicó nada de este código simplemente dijo algo como "yo hago así" y mandó ese fragmento, capaz es una pelotudes pero no entiendo esas partes después lo demás que no marque si lo entiendo.

Muchas gracias...
#319
Interesante... yo uso la v2 ese que al darle click al captcha se verifica o te sale una tarea para completar. ¿Funcionara con este?
#320
¿Quéeeeeeeeeeeee? ¿Se puede usar reCAPTCHA para archivos AJAX? ¿O entendí todo mal xD?

Es decir, digamos que tengo un sistema de comentarios con AJAX ¿Puedo validar cada envió con reCAPTCHA?

Algo parecido a un "timeline"

[TEMA]
[FORMULARIO DE COMENTARIO]

[OTRO TEMA]
[OTRO FORMULARIO DE COMENTARIO]

[OTRO TEMA MÁS]
[OTRO FORMULARIO DE COMENTARIO MÁS]

Los diferentes formularios se agregan de forma dinámica "foreach" usando PHP