Jump to content

cristianvar

Miembro
  • Contador contenido

    15
  • Ingreso

  • Última visita

  • Días ganados

    4

Mensajes publicados por cristianvar

  1. Esto no realiza ninguna conexión con la base de datos, sólo define unas constantes. Para realizar la conexión con la base de datos utilizando estas constante, podríamos hacerlo de la siguiente forma:

     

    <?php
    DEFINE('DB_HOST', 'Host de la base de datos');
    DEFINE('DB_USER', 'Usuario de la base de datos');
    DEFINE('DB_PASSWORD', 'Contraseña de la base de datos');
    DEFINE('DB_NAME', 'Nombre de la base de datos');
    $conexion = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("No se pudo conectar con el servidor de la base de datos. Error: ".mysql_error());
    mysql_select_db(DB_NAME, $conexion);
    ?>
    
  2. Hoy os traigo este sitio, bastante completo, donde aprender a programar lenguajes orientados a la web, tales como HTML, CSS, XML, JavaScript, PHP, etc.

     

    Este sitio, como he dicho antes, es bastante completo y cuyo contenido es fácil de entender. El único inconveniente es que está en inglés.

     

    Sitio -

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

     

     

    ¡Un saludo!

  3. Bueno, he hecho un pequeño script que sirve tanto para banear como para desbanear usuarios.

     

     

    <?php
    if(isset($_POST['submit']) && $_POST['submit'] == 'banear') {
    $usuario  = mysql_real_escape_string($_POST['usuario']);  // Recibimos el valor del campo "usuario"
    $banear = "UPDATE account.account SET status = 'BLOCK' WHERE login = '".$usuario."'";  // Ejecutamos la query para cambiar el estado
    $query  = mysql_query($banear) or die (mysql_error());
    if($query) {
    echo 'La cuenta ha sido baneada.'; // Si se ha ejecutado correctamente, sale un mensaje.
    } else {
    echo "La cuenta no ha sido baneada"; // Si no se ha ejecutado correctamente, sale otro mensaje.
    }
    }
    if(isset($_POST['submit']) && $_POST['submit'] == 'desbanear') {
    $usuario  = mysql_real_escape_string($_POST['usuario']);  // Recibimos el valor del campo "usuario"
    $desbanear = "UPDATE account.account SET status = 'OK' WHERE login = '".$usuario."'";  // Ejecutamos la query para cambiar el estado
    $query  = mysql_query($desbanear) or die (mysql_error());
    if($query) {
    echo 'La cuenta ha sido desbaneada.';  // Si se ha ejecutado correctamente, sale un mensaje.
    } else {
    echo "La cuenta no ha sido desbaneada.";  // Si no se ha ejecutado correctamente, sale otro mensaje.
    }
    }
    ?>
    ?>
    <h3>Banear</h3>
    <form action="" method="post">
    Usuario: <input type="text" name="usuario">
    <input type="submit" name="submit" value="banear">
    </form>
    <h3>Desbanear</h3>
    <form action="" method="post">
    Usuario: <input type="text" name="usuario">
    <input type="submit" name="submit" value="desbanear">
    </form>
    
    

     

    No lo he podido testear, quizá tenga algún error. Si alguien tiene alguna duda sobre su funcionamiento, puede contactar conmigo por un mensaje privado.

     

     

    Un saludo.

  4. Bueno, muchas veces me he topado con un monton de webs con una pequeña vulnerabilidad que permite realizar inyecciones de código SQL por medio de un formulario (ya sea el de registro, el de login u otros) o utilizando la barra de direcciones (osea, el método GET). Esto permite al atacante, acceder a la base de datos y modificar (editar, eliminar, etc) cualquier contenido que haya en ella.

     

    Para evitar este tipo de ataques vamos a utilizar una pequeña función que sustituye todos los carácteres especiales para ejecutar sentencias SQL y, ya que estamos, también eliminamos cualquier tipo de etiqueta HTML que haya de por medio.

     

    Vamos a ver la función:

     

    #Edito: el código estaba mal, la función es mysql_real_escape_string(), no mysql_real_string(). Pequeño error, pero ya lo corregí.

     

    <?php
    function limpiar($contenido)
    {
    	$contenido = strip_tags($contenido);
    	$contenido = mysql_real_escape_string($contenido);
    	return $contenido;
    }
    ?>
    

    Para ponerlo a funcionar podríamos utilizar este ejemplo:

     

    <?php
    $usuario = limpiar($_POST['usuario']);
    ?>
    

    O, si utlizamos el método GET, podemos usar este código:

     

    <?php
    $usuario = limpiar($_GET['usuario']);
    ?>
    

     

    Todo el tema de seguridad es muy importante a la hora de crear una página web, y aún más si es para un servidor de Metin2, ya que hay mucha gente ociosa a la que le divierte fastidiar.

     

    A los que les interese todo el tema de seguridad, pueden ver esta guía en PDF bastante útil:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

     

     

     

    Espero que os sirva esto y si teneis alguna duda, estaré encantado de intentar ayudaros en lo que pueda.

     

     

    Saludos.

×
×
  • Crear nuevo...