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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1]
1  Programación / PHP / PHP, sockets e hilos (PHPSocketMaster 1.0) en: 16 Diciembre 2014, 02:08 am
Buenas tardes compañeros, amigos, lectores y usuarios, les traigo una buena noticia, hacía casi 3 meses que no lanzaba una versión nueva de PHPSocketMaster y a decir verdad no recuerdo cuando fue la última versión que publiqué.

Ventajas de usar PHPSocketMaster para gestionar mis sockets:

* PHPSocketMaster es actualizada, mejorada y depurada entre varias personas (o esa es la idea) a lo largo del tiempo, por lo que al aparecer nuevas vulnerabilidades, errores y demases en el codigo, el mismo será actualizado. Uno de nuestros mayores objetivos es mantener la compatibilidad entre versiones viejas y nuevas, de modo que no sea necesario cambiar ni una linea de código ante cualquier actualización, con este objetivo creamos interfaces las cuales nos obligan a mantener la compatibilidad entre nuevas y viejas versiones dotando de nuevas caracteristicas y reparaciones sin dejar programas viejos con errores.

* PHPSocketMaster es robusto y mejora día a día, otorga una base confiable para que usted pueda programar tranquilamente sin tener que reparar en detalles que puedan causar una perdida de tiempo importante para poder hacer andar un código. Este ahorro de tiempo acompañado de la seguridad de utilizar una librería probada en muchos contextos, es en general uno de los puntos a favor más importantes.

* PHPSocketMaster le permite establecer un patrón de trabajo y al ser reusable le permite a usted tener códigos similares en varios proyectos, más fáciles de depurar y revisar que si usted programara una clase para gestionar sockets en cada proyecto.

* PHPSocketMaster está orientado a objetos con eventos, dando mayor flexibilidad al código y mejorando notablemente la velocidad de desarrollo en comparación con el obsoleto sistema de sockets estructurado.

* Desarrollé phpsocketmaster como una solución a mi grave problema, cada vez que yo quería desarrollar un código que utilizara sockets, creaba una nueva clase para gestionarlo, de modo que cada código era un mundo diferente y me traía bastante dolores de cabeza, decidí crear una pequeña librería que soportara cualquier proyecto ambicioso que quiciese sin tener que volver a escribir una y otra vez el código de dicha librería.

Cambios de la versión 0.4 a 1.0:

Código
  1. ADD: funcion loop_refresh()
  2. ADD: funcion loop_refreshListen()
  3. ADD: Nueva propiedad listenClients
  4. ADD: Pruebas de hilos en el directorio test
  5. ADD: nueva clase HTTPClient
  6. ADD: nueva interface http client.
  7. ADD: nueva clase ThreadSocketMaster, control multihilo y sus constantes
  8. ADD: nuevos eventos onSendRequest y onSendComplete
  9. ADD: nuevas propiedades Domain, Protocol, ConnectionType, Type, State
  10. FIX: ejemplos para los nuevos cambios.
  11. FIX: las funciones connect, disconnect, listen ahora retornan verdadero o una excepción
  12. ADD: agregado soporte nativo para programar sobre phpSocketMaster sin necesidad de eventos

Resumen

PHPSocketMaster es un grupo de clases para manejar los sockets nativos de php como objetos, e incluye eventos, si no te gustan los eventos se agrego un soporte para poder manejarlo solo como objetos, entre las prestaciones de la librería podemos notar control nativo de websockets (que incluye el protocolo necesario para hacer funcionar websockets internamente), multihilos si está disponible php con multihilos, y una pequeña clase para hacer un cliente http parecido a Curl (o ese es el objetivo futuro aunque está verde).

PHPSocketMaster cuenta con una wiki completamente en español aquí y una wiki en inglés parcialmente traducida (estamos en busca de nuevos traductores).

Puedes ver el repositorio oficial aquí, puedes descargar la versión 1.0 (o última versión estable en caso de que veas esta publicación dentro de un tiempo) aquí, y puedes ver la rama de desarrollo para ver los últimos cambios aquí.


Un saludo! Sugerencias, ideas, comentarios son bienvenidos siempre que no sean mala onda.
2  Programación / PHP / Manual Sockets en PHP (PHPSocketMaster) en: 2 Noviembre 2014, 21:07 pm
Buenas tardes lectores, mientras espero para ver el lanzamiento del satelite geoestacionario argentino arsat-1, voy a escribir una publicación para compartir mi manual para trabajar con sockets en php.


En este manual utilizaremos la librería PHPSocketMaster que pueden ver su repositorio oficial aquí, para realizar clientes, servidores y servidores para websockets en php, entre otras cosas.

El documento incluye los siguientes temas:

Arquitectura Cliente/Servidor
Utilidad de sockets en php
Conceptos Claves de sockets
PHPSocketMaster como cliente
PHPSocketMaster como servidor de multiples conexiones
PHPSocketMaster como servidor para websockets
PHPSocketMaster como cliente HTTP

entre otros varios temas.

Pueden descargar el pdf aquí | Fuente Original

Un saludo y espero sea de su agrado.
3  Programación / Programación General / Calidad en desarrollo de software (Paper) en: 2 Noviembre 2014, 21:05 pm
hoy les traigo un paper en formato pdf relacionado con calidad en desarrollo de software, la idea de este pdf es agrupar algunas de mis entradas del blog (quizá las más importantes) relacionadas con el hilo "El arte de programar". Quiero agradecer a gabriela de underc0de.org por su colaboración con la corrección del documento y sugerirles como siempre, que pasen por mi blog (std-io)


 Éste pdf reúne varias cosas, conceptos muy importantes a tener en cuenta, y por supuesto desde el punto de vista del software como actividad económica, agrupando las razones por las que aplicar cada criterio tanto así como una visión industrial de lo que todos conocemos como programación.

Programación como actividad económica, una visión del software como un trabajo.
Criterios de calidad, los criterios generales para medir cuándo un código es de calidad.
Calidad y balance, cuando corresponde aplicar los criterios y por qué.
Dificultades de aplicar calidad, existiendo la calidad por qué no es tan sencillo aplicarla y hay tan poco código de calidad abierto al público.
Por supuesto incluye una descripción detallada de cada criterio de calidad en particular, además una explicación extra para cada uno, y lecturas complementarias.

Recomendamos leer todo el hilo del Arte de programar (véase indice) si te gustó el pdf.

También comentamos que el próximo pdf estará relacionado con el proceso de normalización y ya se encuentra en el laboratorio de corrección de documentos, esperando los ultimos ajustes para ser publicado.

Ver PDF | Fuente original.

saludos!
4  Programación / PHP / Buenas prácticas para programar en php (Traducción) en: 22 Octubre 2014, 23:45 pm
Buenas tardes, les traigo aquí el fruto de mi esfuerzo, hace un par de días publiqué una entrada en mi blog en la cual dejaba un enlace a una web de buenas prácticas en php (ver entrada aquí) y decidí que era un muy buen material que me gustaría que estuviera en nuestro idioma, por lo que puse manos a la obra y a traducir.


Hoy traigo entonces, la versión en español de éste documento muy interesante, quiero agradecer a Gabriela de underc0de por realizar la corrección final del texto traducido.

Éste documento incluye temas como:

Almacenamiento de contraseñas de forma segura
Administración de la base de datos de forma segura
Forma eficiente de manipular autocarga de clases
Comillas dobles vs comillas simples (algo que se debate mucho en la red)
Define vs Const
Cachear php con OPCode
PHP y Memcache
PHP y expreciones regulares
PHP-FPM y fastcgi
Enviar mails de forma correcta
Validar direcciones emails de forma correcta
Limpiar xss de entradas de texto correctamente.
Utilizar PHP con UTF8
Manipular correctamente fechas
Comprobaciones correctas de valores falsos, verdaderos y nulos

Hay que aclarar que esto no es un manual de como hacer cada cosa, sino como hacerla correctamente.

En fin sin más que agregar les dejo el enlace:

Descargar el documento aquí | Ver fuente original

Saludos!

pd: agradezco a gabriela de underc0de por su colaboración en la corrección de la traducción.
5  Programación / PHP / Property en PHP en: 8 Noviembre 2013, 00:50 am
Haciendo mi segunda versión de la clase BBParser (que publiqué anteriormente la versión 1), mientras refinaba el código que había escrito, miraba la documentación de php. Hace unos días había oído que php era una basura como lenguaje, y uno de los argumentos del expositor de dicho mensaje, era que php no daba soporte al famoso y muy útil property.
Todos sabemos que si nos basamos en los principios de encapsulamiento no podemos tener atributos públicos que sean accesibles directamente desde fuera de las clase, por lo que la solución a éste problema era simple, crear funciones públicas que cambien los valores y/o los obtengan, de aquellos atributos privados. Para lo cual surgen las funciones getter y setters, no obstante, si uno hacía un módulo, tendría que explicarle a los que lo usaran (si no eran muy experimentados) que habían funciones para setear valores, y funciones para obtenerlos, y posiblemente se le haría una confusión porque, para setear un valor a una variable simplemente uno pone $variable = $valor; pero para setear valores de esta forma tenemos que usar una función setear_variable($valor); lo cual es muy diferente y le podría dar confusión, para solucionar esto, y quitar este peso absolutamente innecesario, se creó el property, que son unas pocas lineas de código que especifican que cuando alguien quiere acceder a una propiedad privada, se llama a una función que manipule la propiedad y devuelva el resultado, dando entonces que a una clase que tiene un atributo privado como la que pondré más abajo, se pueda acceder "directamente" o eso parecería, aunque internamente pasa por funciones que manipulan el atributo.
Para mala suerte de la persona que dijo que el property no era posible en php porque el lenguaje no lo soportaba, estaba equivocado, y con un par de funciones mágicas pude hacer un property, que lo puse en un trait para que pueda ser usado en cualquier clase cuantas veces sea necesario (según la cantidad de clases).

aquí les dejo el property que lo verán en la nueva versión de mi clase controladora de bbcodes.

Código
  1.  
  2.  
  3.    /** Property para php
  4.      *  ésto fue escrito por alexander171294 - [H]arkonnen
  5.      *  como parte del módulo BBParser 1.1.0
  6.      *  @ Contact: alexander171294@gmail.com
  7.      */  
  8.    trait MyProperty // mi hermoso trait property
  9.    {
  10.        // llamando a funciones setters
  11.        Public function __set($property, $value)
  12.        {
  13.            if(is_callable(array($this, 'set_'.$property), $value))
  14.                return call_user_func(array($this, 'set_'.$property), $value);
  15.            else
  16.            // no hay funcion setter para este atributo (o no existe el atributo)
  17.                return false;
  18.        }
  19.  
  20.        // llamando a funciones getters
  21.        Public function __get($property)
  22.        {
  23.            if(is_callable(array($this, 'get_'.$property)))
  24.                return call_user_func(array($this, 'get_'.$property));
  25.            else
  26.            // no hay funcion getter para este atributo (o no existe el atributo)
  27.                return false;
  28.        }
  29.    }
  30.  
  31.    /* implementación de ejemplo: */
  32.  
  33.    Class prueba
  34.    {
  35.    use MyProperty;
  36.            private $ejemplo = 0; // variable privada a la que accederemos
  37.  
  38.            // getter
  39.            private get_ejemplo()
  40.            {
  41.                    return $ejemplo;
  42.            }
  43.  
  44.            // setter
  45.            private set_ejemplo($value)
  46.            {
  47.                    $this->ejemplo = $value;
  48.            }
  49.    }
  50.  
  51.    $example = new prueba();
  52.  
  53.    $example->ejemplo = 2;
  54.    echo $example->ejemplo;
  55.  
  56.    // como verán, se puede acceder al atributo privado aparentemente "directamente" no obstante, previamente el código llama a las funciones getters y setters para los atributos privados a los que queremos acceder, por lo tanto no viola los principios de encapsulamiento :)
  57.  

también lo pueden ver desde pastebin aquí

saludos!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines