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

#401
Buenas noches,
¿Como podría ejecutar esta consulta de una forma constante?

Mark_Disconnected()

Código (php) [Seleccionar]

        function Mark_Disconnected()
{
$timestamp_now = date('Y-m-d H:i:s');
$timestamp_now = strtotime('-15 minutes', strtotime($timestamp_now));
$timestamp_now = date('Y-m-d H:i:s', $timestamp_now);

$con = Connection('A', 'B');
$query = $con->prepare('UPDATE users SET connected = 0, sid = null WHERE connected = 1 AND '.($timestamp_now).' >= last_activity');
$query->execute();
}


La idea es hacerlo sin sockets, una de las soluciones podría ser un timeout de javascript que llama a una función ajax y una vez que se complete la solicitud "success:" se inicia otro timeout con la misma función... No se si esto está bueno o se sobre carga el servidor.

Realmente es algo con lo que estoy renegando hace rato ya.
#402
Lo que hago con las passwords es

Código (php) [Seleccionar]

$password = Clearn_Data ($_POST ['password']);

$password = cifrar ($password);


Primero limpio la contraseña, que por el momento no está cifrada... Después la cifro..

¿Así no habría problema? ¿no?
#403
Estaba pensando poner la función "Is_Online" es decir, que se ejecute cada 10 minutos pero de una forma más global, es decir:

Código (php) [Seleccionar]

function Is_Online($id_user)
{
    [Edita en la base de datos donde la id de usuario sea igual a id_user y conectado = 1 y el tiempo de gracia excedió]
}

// y cambiar por
function Is_Online()
{
      [Editar en la base de datos todos los usuarios donde conectado = 1 y el tiempo de gracia se excedió]
}


Pero no se como puedo hacer que cada 10m o 1m se pueda ejecutar esta consulta y si es recomendable.

Hacer algo como "LongPolling" pero nose por donde empezar, si me pudieran decir si esto es recomendable se los agradezco mucho.
#404
Cita de: WHK en 23 Octubre 2019, 00:06 AM
Hola, muchas personas cometen el mismo error, tu función tiene vulnerabilidades.

Las inyecciones SQL se previenen escapando los caracteres cuando son ejecutadas las consultas sql, los xss se previenen utilizando htmlentities, pero cuando unes ambas cosas, por ejemplo, un filtro de inyección sql para evitar un xss o un filtro de xss para evitar una inyección sql abre agujeros de seguridad porque las funciones no están diseñadas para eso.

Debes utilizar cada función de filtro en su caso en particular. Cuando vayas a consultar vía SQL debes escapar caracteres con mysql_real_escape_string() o parametrizar, cuando vayas a exponer información hacia afuera en una pagina html debes usar htmlepecialchars(), si vas a escapar en una dirección url debes usar urlencode() y así.

Saludos.

¡Hola, WHK!

Código (php) [Seleccionar]

function Clearn_Data($data) // Inyecciones SQL
{
      mysql_real_escape_string($data);
      trim($data);

      return $data;
}

function Clearn_HTML($html) // Cuando vaya a expulsar código HTML (XSS)
{
      $html = htmlspecialchars($html);
      $html = trim($html);
      $html = stripslashes($html);
     
      return $html;
}

function Clearn_URL($url) // Cuando vaya a guardar una URL en una base de datos
{
    $url = urlencode($url);
    return $url;
}


Así está esto bien aplicado?
#405
Buenos días,
¿Qué funciones me recomiendan para poder "limpiar" datos que serán usados en consultas SQL? (Evitar inyecciones SQL)
Uso las consultas "prepare" tengo entendido que ya al usar consultas prepare lo que hace es evitar inyecciones, pero no soy alguien que me guste ahorrar en términos de seguridad.

¿Qué funciones me recomiendan para poder "limpiar" código HTML? (Evitar ataques XSS)

Mi función Clearn_Data($data) la uso siempre tanto cuando guardo datos en las bases de datos (consultas) o cuando voy a expulsar código HTML.

Código (php) [Seleccionar]

function Clearn_Data($data)
{
$data = htmlspecialchars($data);
$data = trim($data);
$data = stripslashes($data);

return $data;
}


En post pasado me dijeron que mi función clearn data no es muy buena que digamos o segura que digamos..el post es de Julio acá se los dejo para poder meterlos en contexto:
https://foro.elhacker.net/php/pregunta_iquestcomo_pasar_utf8_datos_php-t497595.0.html;msg2199671

Gracias.
#406
Buenos días,
básicamente eso.. necesitaba saber como podría detectar cuando un usuario cierra su navegador (no me refiero a cerrar la pestaña), lógicamente esto lo quiero hacer con javascript o JQuery...

Gracias...
#407
Muchas gracias a los dos, ya todo funciona correctamente!
#408
Bueno quería saber como puedo acceder a el siguiente resultado que me arroja una consulta SQL

Código (php) [Seleccionar]

$query = $con->prepare('SELECT n.id_notification, u1.name, u2.name FROM notifications n INNER JOIN users u1 ON n.id_emitter = u1.id_user INNER JOIN users u2 ON n.id_user = u2.id_user');


Hice un var_dump a la variable que contiene los resultados que devuelve la consulta.

Código (php) [Seleccionar]

array(1) { [0]=> array(5) { ["id_notification"]=> string(1) "1" [0]=> string(1) "1" ["name"]=> string(6) "Miguel" [1]=> string(5) "Ramon" [2]=> string(6) "Miguel" } }
1


Para intentar a acceder a los dos nombres que se guardan que según entiendo sería así:

Código (php) [Seleccionar]

$results[0]['name'] // Va a devolver 'Miguel'
$results[0][1]['name'] // Esperaba que devuelva Ramon pero devuelve 'R'
$results[0][2]['name'] // Esperaba que devuelva Miguel pero devuelve 'M'


La idea era hacerlo sin tener que usar "AS"
#409
¡Te lo agradezco muchisimo, me sirvio!
#410
Para hacerla sencilla hice este diagrama.


La idea es pasar esto que está en este diagrama a una consulta SQL que es lo que intento hacer pero bueno como ya dije antes... no devuelve el resultado.