14.05.2013 Views

Ethical Hacking utilizando BackTrack - Fedora-es

Ethical Hacking utilizando BackTrack - Fedora-es

Ethical Hacking utilizando BackTrack - Fedora-es

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

El filtro que agregamos <strong>es</strong> FILTER_SANITI-<br />

ZE_MAGIC_QUOTES, el cual <strong>es</strong> equivalente a la<br />

función AddSlash<strong>es</strong>. Ahora nu<strong>es</strong>tro campo<br />

nombre, además de ser requerido (required)<br />

<strong>es</strong>tá filtrado para evitar ataqu<strong>es</strong> con técnicas<br />

como las de inyección SQL.<br />

Algunos filtros además tienen opcion<strong>es</strong><br />

adicional<strong>es</strong>, llamadas flags. Por ejemplo,<br />

FILTER_SANITIZE_STRING usado con su flag<br />

FILTER_FLAG_ENCODE_HIGH, permite codificar<br />

caracter<strong>es</strong> con valor<strong>es</strong> ASCII mayor<strong>es</strong><br />

que 127:<br />

$form->addRule("required","ape<br />

llido","El campo 'apellido' <strong>es</strong><br />

requerido",array("filter_id"=><br />

FILTER_SANITIZE_STRING,<br />

"filter_flag"=>FILTER_FLAG_<br />

ENCODE_HIGH));<br />

La lista completa de filtros y sus flags, la pued<strong>es</strong><br />

encontrar en la página oficial de php mencionada<br />

anteriormente: http://www.php.net/manual/<br />

<strong>es</strong>/filter.filters.sanitize.php.<br />

Figura 4. Formulario terminado<br />

Listado de reglas<br />

Cuando en el apartado anterior vimos la definición<br />

de las reglas con el método “addRule”,<br />

indicamos que lo primero que debíamos<br />

definir <strong>es</strong> el tipo de regla ($type). En <strong>es</strong>ta última<br />

sección veremos cada una de las reglas<br />

disponibl<strong>es</strong>:<br />

• required: El campo no puede <strong>es</strong>tar vacío.<br />

• email: El valor debe ser un correo con<br />

formato válido.<br />

• emailorblank: Debe ser un email con<br />

formato correcto o vacío.<br />

• rangelength: El valor debe <strong>es</strong>tar entre<br />

un rango de caracter<strong>es</strong> mínimo y máximo.<br />

En $options debemos definir un<br />

array con los valor<strong>es</strong> minlength y maxlength<br />

para el valor mínimo y máximo<br />

r<strong>es</strong>pectivamente.<br />

• minlength: El valor no puede tener una<br />

extensión menor de la indicada. En $options<br />

debemos definir un array con el<br />

valor minlength.<br />

• maxlength: El valor no puede tener una<br />

extensión mayor de la indicada. En $options<br />

debemos definir un array con el<br />

valor maxlength.<br />

• equal: El valor debe ser igual a otro. El<br />

valor con el que lo compararemos debemos<br />

definirlo en el array $options bajo<br />

el nombre de equalfield.<br />

• regex: El valor debe coincidir con una expr<strong>es</strong>ión<br />

regular. Dicha expr<strong>es</strong>ión la definimos<br />

en el array $options bajo el nombre de rx.<br />

• lettersonly: Debe contener sólo letras.<br />

• alphanumeric: Debe contener letras o números.<br />

• numeric: Debe contener un número positivo<br />

o negativo, entero o decimal.<br />

• nopunctuation: No puede contener alguno<br />

de los siguient<strong>es</strong> caracter<strong>es</strong>:<br />

( ) . / * ^ ? # ! @ $ % + = , " '<br />

> < ~ [ ] { }.<br />

• notbeginwith: No puede comenzar con<br />

un caracter en particular. Dicho caracter lo<br />

debemos definir en el array $options bajo<br />

el nombre de notbegin.<br />

• maxvalue : El valor ingr<strong>es</strong>ado por el usuario<br />

no puede ser mayor al definido bajo el<br />

nombre de maxvalue en el array $options<br />

de la regla.<br />

• minvalue: El valor ingr<strong>es</strong>ado por el usuario<br />

no puede ser menor al definido bajo el<br />

nombre de minvalue en el array $options<br />

de la regla.<br />

• rangevalue: El valor ingr<strong>es</strong>ado por el<br />

usuario debe <strong>es</strong>tar en el rango indicado<br />

por los valor<strong>es</strong> minvalue y maxvalue del<br />

array $options de la regla.<br />

www.lpmagazine.org<br />

programación<br />

php – Muuu Forms<br />

Figura 5. Formulario ant<strong>es</strong> y d<strong>es</strong>pués de envío,<br />

indicando avisos en casos de error<br />

• boolean: Si el valor ingr<strong>es</strong>ado <strong>es</strong> 1, true,<br />

on o y<strong>es</strong>, será válido.<br />

• float: El valor debe ser un número de punto<br />

flotante.<br />

• integer: El valor debe ser un entero.<br />

• ip: El valor debe ser un IP con formato<br />

válido.<br />

• url: El valor ingr<strong>es</strong>ado deber tener un formato<br />

de URL válido.<br />

• uploadedfile: El campo debe contener un<br />

archivo que subió correctamente.<br />

• filename: El nombre del archivo debe<br />

coincidir con el definido en el array $op-<br />

tions bajo el nombre name.<br />

• filetype: El tipo del archivo debe coincidir<br />

con el definido en el array $options<br />

bajo el nombre type.<br />

• fil<strong>es</strong>ize: El tamaño del archivo debe coincidir<br />

con el definido en el array $options<br />

bajo el nombre size.<br />

• date: El valor ingr<strong>es</strong>ado debe contener<br />

una fecha con formato válido.<br />

Conclusión<br />

La idea principal de <strong>es</strong>te artículo ha sido pr<strong>es</strong>entarte<br />

una manera simple para generar,<br />

validar y filtrar formularios en php. Si bien<br />

se han abordado varias de las principal<strong>es</strong><br />

funcionalidad<strong>es</strong> de Muuu, pued<strong>es</strong> encontrar<br />

un mayor detalle en la documentación existente<br />

en el sitio del proyecto: http://muuu.<br />

sourceforge.net.<br />

Por último, cualquier idea, pregunta, comentario,<br />

sugerencia y/o modificación al código<br />

de Muuu <strong>es</strong> bienvenida y se agradece. Suerte<br />

en todos tus proyectos.<br />

89

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!