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 - WHK

#531
Si es ir haciendo clicks y no tienes mucha experiencia, puedes usar visual studio + c#.

Si tienes mas experiencia y quieres hacerlo multiplataforma entonces usa python + gtk o web con docker+apache+php+codeigniter+bootstrap o nodewebkit.

Si tienes bastante experiencia, no necesitarás hacer clicks, en ves de eso puedes hacer scripts en python 3 para terminal, tiene muchas ventajas en tema de funcionalidades, sino entonces nodejs.

Saludos.
#532
Bugs y Exploits / Re: Apache Killer no funciona
30 Octubre 2018, 02:35 AM
Pues actualmente no hay una manera muy efectiva de saberlo, es como tratar de adivinar que marca de router estas utilizando en tu casa, solo se puede saber si tiene servicios y puertos expuestos, pero en caso contrario es muy dificil.

En este caso, para saber que waf utiliza alguien puedes intentar lanzar algunos ataques muy específicos donde solo responda de una cierta manera y no los demás.
#533
Bugs y Exploits / Re: Apache Killer no funciona
29 Octubre 2018, 23:49 PM
El wafw00f no es muy fiable.

Saludos.
#534
Bugs y Exploits / Re: Apache Killer no funciona
29 Octubre 2018, 13:44 PM
Puede ser porque tenga un WAF instalado.

Saludos.
#535
Scripting / Re: Metodos de Ordenamiento en cmd
24 Octubre 2018, 19:48 PM
Has buscado algo al respecto por lo menos?
#536
Normalmente ubuntu toma por defecto la red dependiendo del servidor DHCP que le pertenece al anfitrión.

Yo creo que tu problema no está en el servidor, sino en el sistema de virtualización. ¿Qué estás usando?, ¿Virtualbox, KVM, VMware?.

Estás usando un adaptador puente? DHCP local? servidor DNS local? NAT?, puedes acceder a una dirección IP externa en ves de un host, como por ejemplo 8.8.8.8?

Saludos.
#537
Ahora falta que después de todas las amenazas y ataques aparezca la persona que va a calmar todos los ánimos (falso profeta en que los judios van a creer) y todos se reconcilien y ofrezca "paz y seguridad", y cuando todos estén de acuerdo y la gente crea que haya paz se van a venir las catástrofes más grandes.
#538
Hola, a mi parecer la mejor opción para mi es creando propiedades dinámicas con tablas fijas por temas de escalabilidad, ya que si hoy diseñas una base de datos con todos los campos que necesitarás y después agregas un tipo de producto nuevo, vas a tener que modificar la base de datos y eso no se puede dar.

El tema es que puedes usar una tabla de etiquetas donde cada producto pueda tener múltiples tipos de etiquetas, así como los post de un blog y estas a su ves dentro de una categorización, pero ojo, son solo dos dimensiones y nada más. Te lo digo por experiencia propia porque una ves hice mi propio sistema CMS en php con un sistema integrado de carrito de compras para venderlo en mi país.

Por ejemplo, al momento de crear un nuevo producto en el sistema voy a crear la categoría de etiquetas llamada "colores" y dentro le pongo etiquetas llamadas "rojo", "verde", etc. De esta manera cuando tenga un buscador, puedo discriminar por categoría de etiquetas y por etiquetas, por ejemplo: muéstrame todos los productos de tipo ropa donde el color sea rojo y de talla xl, entonces en la base de datos irá a buscar productos que tengan categoría de etiquetas de tipo productos y el tag "ropa" y a demás que contengan la categoría "colores" y tags de tipo rojo y categoría de tipo talla que tenga la etiqueta xl.

Si te fijas, tengo la tabla productos, una tabla de categoría de etiquetas de productos y una tabla de etiquetas de productos, donde también existe una tabla de muchos a muchos entre etiquetas y productos (luego el producto se sabe que categorías tiene haciendo un join a sus etiquetas).

En este caso vas a tener un problema y es la velocidad ya que para saber a que categorías pertenece un producto vas a necesitar saber todas sus etiquetas y prácticamente recorrer internamente todos los registros de la tabl, para esto vas a necesitar crear tablas desnormalizadas, esto quiere decir que vas a tener una tabla con tres columnas, id de producto, id de categoría y id de etiqueta, vas a tener duplicidad de datos pero serán accesibles de manera mucho mas rápida, y esta tabla no debe tener relaciones a excepción del id de producto, esto hará que para consultar productos por categoría no tengas que hacer joins y ahogar la memoria de la base de datos, pero también quiere decir que desde tu código web (php, java, .net, etc) en tu modelo de datos necesitarás hacer que cada ves que se modifique un producto o etiqueta también lo haga a esta tabla desnormalizada, de esta manera cada ves que insertes un registro se llenará tu tabla desnormalizada y harás que tus consultas a la base de datos sean extremadamente rápidas. Luego con el tiempo puedes aplicar técnicas de particionamiento de tablas.

¿No has pensado en utilizar magento que ya está construido y viene con muchas buenas prácticas?, si quieres tener tu propio sitio web de venta de cosas entonces no te recomiendo que hagas un sistema de cero, pero si quieres distribuir tu sistema vendiéndolo o cediéndolo, entonces está bien.

Saludos.
#539
No sale mas fácil hacer un redimensionado de memoria utilizando memcpy() o malloc() de stdlib.h para c y prevenir los desbordamientos?
#540
Mira, he limpiado un poco tu código para solucionar algunos problemas:

Código (php) [Seleccionar]
<?php

class Wservice
{
    private 
$status;
    private 
$mysql_data;
    private 
$mysql_handler;

    public function 
__construct()
    {
        
$this->mysql_data = array(
            
'host'     => '127.0.0.1',
            
'dbname'   => 'test2',
            
'user'     => 'root',
            
'password' => ''
        
);

        
$this->mysql_handler = new mysqli(
            
$this->mysql_data['host'],
            
$this->mysql_data['user'],
            
$this->mysql_data['password'],
            
$this->mysql_data['dbname']
        );

        if(
$this->mysql_handler)
        {
            
$this->status 1// Success
        
}
        else
        {
            
$this->status = -1// Unable connect to database
        
}
    }

    public function 
__destruct()
    {
        
// Close connection
        
if($this->mysql_handler)
        {
            
$this->mysql_handler->close();
        }
    }

    private function 
getData()
    {
        
$data = array();

        
$result_handler $this->mysql_handler->query('
            SELECT *
            FROM usuarios -- Plural!
            -- LIMIT ???? Exhaust memory vulnerability!
        '
);
        if(
$result_handler)
        {
            while(
$row $result_handler->fetch_assoc())
            {
                
$data[] = $row;
            }

            
$result_handler->free();
        }
        else
        {
            
$this->status = -2// Query fail
        
}

        
// query fail? return a empty array (prevent exceptions in java)
        
return $data;
    }

    public function 
out()
    {
        
// Set the content type
        
header('Content-type: application/json');

        
// Prevent cache
        
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
        
header('Cache-Control: post-check=0, pre-check=0'false);
        
header('Pragma: no-cache');

        
// Get required data
        
$data $this->getData();

        
// Out the data and status
        
echo json_emcode(array(
            
'status' => $this->status,
            
'data'   => $data
        
));
    }
}

$wservice Wservice();
$wservice->out();


El estado 1 indica que todo resultó ok, el -1 es porque falló la conexión a la base de datos y -2 es porque falló la consulta a la base de datos.

Recuerda darle un límite a tu consulta sql, porque si hay un millón de usuarios no podrás devolver un json con un millón de registros. Averigua sobre técnicas de scafollding, eso quiere decir que sería bueno que hagas un servicio rest para buscar un solo usuario, buscar varios usuarios con un límite (buscador), uno que elimine el usuario y otro que edite sus datos, ese orden te ayudará mucho en tu proyecto con separación de capas (como veo que lo estás haciendo). También te ayudaría mucho el uso de microservicios utilizando docker para aumentar la escalabilidad de tu proyecto ya que veo que has separado las funcionalidades en servicios rest independientes.

Recuerda desactivar los mensajes de error de php o si no cuando falle algo te arrojará un warning en html dentro de una cabecera json y todo estallará y volará por los aires destruyendo todo a su paso xD

Saludos.