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

#961
Pentesting / Re:Creando un minibackdoor en PHP
Noviembre 26, 2012, 11:59:26 AM
está genial la explicación, éste minituto para los que recién empezamos :D

CitarEsta bien, pero en lugar de reinventar la rueda, utilizaría una de las tantas que hay disponibles, por ejemplo la mejor que conozco es la que esta disponible en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

el tema no trata de cual es la mejor forma, o de inventé un minibackdoor, solo explica como crear uno pequeño, para los nuevos en el área.-

saludos!
#962
Dudas y pedidos generales / Re:ayuda encontrar admin panel
Noviembre 26, 2012, 11:46:12 AM
tema cerrado. gracias abnormality.

saludos!
#963
Back-end / Re:Propongan ideas para la sección de php
Noviembre 26, 2012, 11:43:41 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Lo de hacer un proyecto estaría bien. Bueno esta sección se puede mejorar si agrupan todos los tutoriales de PHP en un solo post, por que actualmente se tiene muchos tutoriales sueltos y casi todos son lo mismo.

sobre el post, no son todos pero son los mejores You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

saludos!
#964
Dudas y pedidos generales / Re:una duda :)
Noviembre 26, 2012, 02:14:58 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
se puede rastrear una ip hasta saber donde vive una persona? o solo el pais?  ::) bueno esa era una duda que tenia.

si, por ejemplo los modems móviles son prácticamente un GPS por lo que tengo entendido, igual seguro alguien que sabe más del tema nos puede iluminar xD

saludos!
#965
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 02:05:44 AM
Aclaración final

con éste framework no se pretende ni ser el mejor ni demostrar nada, solo mostrarle a los nuevos y a todos que hacer un framework para uso personal no es tan complejo, y uno puede tener simplemente lo que quiere, éste framework es fácil de modificar, y puede ser aplicado a gusto personal, como también no es muy grande ni muy robusto, es simple y sencillo, una idea para que todos empiezen con esto.

yo no soy un gurú de php, simplemente un aprendiz que quiso hacer algo más que un pequeño código y está experimentando con ésto.

estos ejemplos fueron realizados lo más simple posibles así todos hasta las personas con conocimientos básicos pueden entenderlos, y por eso no se ah utilizado en su mayoría tecnicismos, además son simples ejemplos puntuales, por ejemplo cuando establezco la posibilidad de crear una función registro en la clase home, en realidad es simplemente dar la idea de como funcionaría utilizando la unica clase que había (home) pero no se recomienda hacerlo ahí porque carece de sentido total, no concuerda, con el objetivo de la clase, digamos que registro de usuarios con las consultas de la portada no tienen mucho que ver.

saludos!
#966
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 02:02:38 AM
Obtener nombre del controlador que se está ejecutando y si es por ajax

para obtener el nombre del controlador si no se ejecuta por ajax es:

Código: text
$FRK_URL[0];


y si es un pedido por ajax:

Código: text
$FRK_URL[1];


se puede saber si es por ajax o no si el $FRK_URL[0]=='ajax';
#967
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 02:00:58 AM
modo ajax

el modo ajax le permitirá hacer transacciones de datos sin cargar la vista, todo funciona igual a diferencia que los controladores no dispondrán de la variable $view, no obstante pueden usar simple_return();

en la lista de acciones para ajax un controlador se establece así:

Código: text
'controlador' => 'AJAX'


mientras que para un normal:

Código: text
'controlador' => 'ALL'


tenga en cuenta que para llamar a un controlador por ajax la url es:

localhost/ajax/controlador/variable2/variable3

(la variable 1 queda anulada de modo que solo se pueden tomar así: $FRK_URL[2];)

la variable $FRK_URL[1]; devolverá el nombre del controlador que quiere ser llamado.

saludos!
#968
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:55:09 AM
Librerias del framework especiales

captcha.php

permite generar un captcha, pero es una clase entera, al crear una instancia se requiere la ubicación de donde se creará.

set_value genera el valor del captcha al azar

check($val) se pasa por referencia el valor ingresado y devuelve si es correcto o no.

create() hace efectiva la creación del captcha

--------------------------------------------

parser.php

clase para parsear bbcode.

se divide en dos: bbcn y bbcc el primero permite etiquetas con apertura y cierre y el segundo etiquetas complejas.

ejemplo de uso oficial de la clase:

Código: text
 /**
   *      EJEMPLO DE USO PARSER BBCN
   *
   * Parser::$BBCN = array(
   *                       '[b]'=>'<b>',
   *                       '[/b]'=>'</b>'
   *                      );
   *
   * $resultado = Parser::Parsear_bbcn('[b]hola[/b]');
   *
   * echo $resultado;
   *
   * mostrará hola en negrita.-
   */


/**
   *      EJEMPLO DE USO PARSER BBCC
   *
   * Parser::$BBCC = array(
   *                       '[url=?]?[/url]'=>'<a href="$1">$2</a>',
   *                      );
   *
   * $resultado = Parser::Parsear_bbcc('[b]hola[/b]');
   *
   * echo $resultado;
   *
   * mostrará hola en negrita.-
   */


--------------------------------------------

phpass.php

clase de encryptación de contraseñas muy conocida y eficaz, su implementación será explicada luego.
#969
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:50:01 AM
Librerias del framework

para hacerte la vida más fácil se desarrollaron librerías que puedes llamar en cualquier momento con la función lib_load('nombre_de_la_librería');

En éste apartado se definirán las librerías hasta la versión 1.0.1 si se crean nuevas librerías en versiones superiores se presentarán en otro comentario.

-------------------------------------------------

extend name: stdbs.php
real name: standard basic system

descripción:
Ésta librería la carga automáticament el framework, siempre está presente, no hace falta utilizar lib_load.

funciones:

Código: text
roundsize ($size = int, $full=boolean)


devuelve el valor de un tamaño con nombre, ejemplo 10kb, es utilizada por el framework para conteos de uso de memoria en modo debug. el full establece si se devuelve kb o KiloByte

Código: text
lib_load($lib=string);


carga una librería de las existentes. en caso de que no exista tira error el intérprete (corregido en versión siguiente)

Código: text
simple_return ($outer = string);


rename de echo, utilizada cuando se hace una devolución de texto para ajax.

-------------------------------------------------

extend name: stdio.php
real name: standard input output

descripción:
librería con comandos básicos de entrada y salida de datos.

funciones:

Código: text
getip();


devuelve la ip del visitante

Código: text
set_seo( $string );


devuelve el string pasado por referencia en modo Seo, para utilizar en urls amigables, (sin espacios, sin simbolos raros, ni acentos, solo letras numeros y guiones)

Código: text
redirect( $Surl );


realiza una redirección hacia la url (abreviación de header('Location: url'); )

-------------------------------------------------

extend name: stdsec.php
real name: standard secure

descripción:
librería para manejo de seguridad.

funciones:

Código: text
filter_POST();


retorna el arreglo de variables recibidos por post filtrados con htmlentities

Código: text
filter_GET();


retorna el arreglo de variables recibidos por get filtrados con htmlentities

Código: text
gen_semilla_str();


genera una semilla de string de 5 caracteres al azar

Código: text
gen_semilla_int($num);


genera una semilla numérica de la cantidad de digitos establecidos en $num
#970
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:34:47 AM
Pasaje de parametros

para captar parametros por get hay que tener en cuenta lo siguiente:

Código: text
localhost/controlador/variable1/variable2/variable3/


siempre la url tiene que terminar en /

para acceder al valor de la variable1 hay que utilizar la variable $FRK_URL con subindice 1

Código: text
$FRK_URL[1];


eso representa al valor en la posición de la variable 1

(tengase en cuenta que no se puede poner de nombre a un controlador ajax, porque habilita el modo de devolución ajax)

saludos!
#971
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:30:17 AM
Cambiar nombre a las carpetas

para que el framework funcione cambiandole el nombre a las carpetas, hay que redefinir los valores asignados en las constantes del archivo base.php

saludos!
#972
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:28:21 AM
La vista

para trabajar con la vista yo recomiendo leerse la You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login... ahí puse los links en las palabras.

saludos!
#973
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:26:15 AM
Consultas a la DB

bueno, a continuación explicaré como hacer una consulta a la db, puesto que en nuestro framework eso se trabaja con una clase, que filtra y hace segura todas las consultas...

tomemos para mostrar los distintos usos la clase home de la aplicación de ejemplo:

Código: text
<?php

// clase basica de ejemplo
class home
{

  // variable para guardar la db
  Protected $db = null;
 
  // metodo constructor para guardar la db en la variable
  Public function __construct($database)
   {
    $this->db = $database;
   }
   
  Public function welcome($ip)
   {
    // aquí en realidad iría una consulta a la db
    return 'Bienvenido '.$ip.' a Simple-Framework (SFW)';
   }

}


supongamos ahora que a nuestra clase le queremos agregar una función para registrar usuarios, todas las validaciones del registro se hacen en el controlador, el formulario se hace en la vista, y se manda un post a la acción que guardará los valores a la db, y se utiliza un modelo para hacer efectivo el guardado en la db, recuerden que son para eso los modelos.

entonces agregamos una funcion registro

Código: text
Public function registro($usuario, $contraseña)
{

}


para realizar un insert con littleDB tenemos que llamar a la variable interna de la clase que guarda la instancia de la db

$this->db

y llamar a su función insert

$this->db->insert('TABLA',array('campo'=>$valor,'campo'=>$valor),TRUE/FALSE);

(a tener en cuenta que el true y false es para saber si devolver o no el id de ese registro creado, solo funciona si el campo es id)

esto tiene filtro automático para injecciónes sql y simplifica nuestro código. además ante cambios de mysql por mysqli o por los que vengan luego, solo se cambia la librería no todo el código.

para entender mejor el funcionamiento de littledb y las clases y demaces hay un código mío You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login que es de un blog que usa littledb y este tipo de programación.

también pueden ver los comentarios de littledb.php dentro de libs, que explican su funcionamiento (desarrollado por cody roodaka, un amigo)

saludos!
#974
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:17:54 AM
Analizando la aplicación de ejemplo

bueno la aplicación de ejemplo no tiene tanta ciencia, les recomiendo intentar hacer un login o algo así para ir probando, pero tengan en cuenta los tres pilares de MVC para no confundirse...

saludos!
#975
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:16:19 AM
Analizando la aplicación de ejemplo - la vista

Si analizamos detenidamente el código del controlador vemos que en ésta linea:

Código: text
$view->assign('bienvenido', $home->welcome($resultado));


asignamos a 'bienvenido' el valor devuelto por la función welcome del modelo home.

y en nuestro archivo home.html dentro de view tenemos en una parte {$bienvenido} eso es reemplazado por el valor devuelto por la función del modelo...

saludos!
#976
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:12:40 AM
Analizando la aplicación de ejemplo - el modelo

veamos ahora el modelo de ejemplo home (class.home.php)

lo primero que se crea es una estructura de código de tipo class que contendrá las funciones y variables del modelo home.

luego se declara una variable en modo protected (que solo puede ser accedida desde la misma clase y no puede ser heredada, vease programación orientada a objetos) para ponerle el controlador de bases de datos.

se utiliza el metodo construct para guardar el controlador de base de datos a la variable y ser usada en las demás funciones que pudieran haber en la clase.

se crea la función welcome que luego es llamada y se le pasa la ip en negrita.

se devuelve el texto que luego es asignado a la vista para ser mostrado.

tengase en cuenta que ese código está mal, porque se propone que en las clases solo estén consultas a las bases de datos.

saludos!
#977
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:08:49 AM
Analizando la aplicación de ejemplo - el controlador

los controladores están en estructurada, ésto quiere decir que no tienen clases ni cosas raras, tomemos como ejemplo el controlador c.home.php que es el que se carga en el proyecto de muestra:

Código: text
<?php

// cargamos un modelo pasandole el control de la base de datos
$home = new home($db);

// cargamos de ejemplo la librería standard input output del framework
lib_load('stdio');
// obtenemos la ip usando la funcion getip de stdio
$ip = getip();

// cargamos la librería parseadora de bbcode
lib_load('parser');

// asignamos el bbcode (podriamos guardar una variable en set.general.php con el bbcode y pasarlo a la clase directamente sin asignarlo aquí al bbcode)
Parser::$BBCN = array(
                          '[b]'=>'<b>',
                          '[/b]'=>'</b>'
                         );

// parseamos el la ip con bbcode 
$resultado = Parser::Parsear_bbcn('[b]'.$ip.'[/b]');

// asignamos un valor de bienvenido a la vista
$view->assign('bienvenido', $home->welcome($resultado));

// mostramos la vista home
$view->draw('home');


lo primero que hacemos es cargar el modelo home (obviamente el archivo class.home.php dentro de model)

luego cargamos una librería del framework que nos permite usar nuevas funciones como getip (luego se detallarán las distintas librerías y funciones que agregan)

se obtiene la ip, se carga otra librería especial para parsear bbcode, se define el bbcode, y se parsea un texto para darle negrita a la ip.

luego se asigna el texto que se obtiene del modelo home funcion welcome, y se asigna a la vista (para que pueda ser mostrado luego)

y por último se carga un archivo html para mostrar.

como verán, el controlador, es el que maneja la vista y los modelos para obtener un resultado...

saludos!
#978
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 01:04:16 AM
Analizando la aplicación de ejemplo - listado de acciones

lo primero que tenemos que tener en cuenta es que al nosotros escribir localhost (o localhost/home/ que es lo mismo) estamos intentando realizar una acción, que es mostrar la home, el framework cuando ocurra esto querrá ejecutar el archivo c.home.php pero para que realmente se ejecute tienen que ocurrir dos cosas

la 1º es que exista dicho archivo, en caso contrario tirará error, pero... si nosotros ponemos localhost/roberto/ y no existe el archivo tiraría error, entonces para que esto ocurra se debe cumplir la segunda cosa, que esté en la lista de acciones válidas.

veamos, nosotros podemos escribir lo que queramos en la url, pero para que el framework sepa que es realmente una acción válida la tenemos que definir en una lista, esa lista está en el archivo:

set.actions.php dentro de la carpeta settings.

Código: text
<?php

// acción por defecto
define ('DEFAULT_DISPATCH','home');

// ALL (con diseño) AJAX (solo para devolución de ajax)

// acciones y tipo de carga
$__DISPATCH = array (
                     'home' => 'ALL'
                    );


si se fijan abajo dice array  y dice 'home' => 'ALL'

si nosotros queremos activar otra acción podemos poner una coma luego de 'ALL' y en el renglón de abajo poner 'roberto' => 'ALL' esto haría que localhost/roberto/ sea una acción válida y se pueda ejecutar, si queremos acceder a una acción que no es válida, el framework auotmáticamente carga c.e404.php.

saludos!
#979
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 12:55:59 AM
Conociendo nuestro Framework

veamos, en nuestro framework nosotros trabajaremos con los archivos que están en settings/ y con los archivos que encontraremos dentro de app/, (estas carpetas se pueden cambiar a gusto y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login)

dentro de app tendremos nuestra aplicación, todos los archivos de nuestro sistema, el resto son cosas del framework.

está separada nuestra aplicación en 3 carpetas, Controller, que son los archivos que representan cada acción de nuestro sistema (como por ejemplo el login, el registro, crear algo, o la pagina de bienvenida), si se fijan hay un ejemplo, dentro de esa carpeta tenemos 2 archivos c.e404.php que se ejecuta cuando se quiere acceder a una zona del sitio que no existe, y c.home.php que es el archivo que se ejecuta cuando nosotros en el navegador ponemos localhost/home/ o localhost, en el ejemplo simplemente es un archivo de bienvenida.

esto está basado en MVC (recomiendo leer un poco sobre él), lo que establece básicamente es separar el diseño de la lógica y los datos, teniendo entonces, el diseño dentro de la carpeta view, que si se fijan, simplemente es html y css, los datos que están en model, (una abstracción de la base de datos, o en otras palabras nuestra db simplificada, osea todas las consultas irán ahí) y en controladores tenemos la lógica, osea todo lo que son las verificaciones y demaces.

recién instalado el framework tenemos una aplicación de ejemplo (que es lo que vimos cuando pusimos localhost).

saludos!
#980
Back-end / Re:Simple Framework - UnderC0de Proyect
Noviembre 26, 2012, 12:47:56 AM
Instalando nuestro framework

Una vez descargado el Framework hay que descomprimirlo en la carpeta htdocs o donde nosotros estemos trabajando en el desarrollo de nuestro sitio.

abrir el archivo settings/set.database.php y configurar la db (los usuarios de su script o usted deberá configurar la db en ese archivo)

una vez hecho esto acceda a

localhost

y verá la pantalla de bienvenida de nuestro framework... listo! el framework ya está funcionando y está instalado!