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 método encargado de agregar reglas <strong>es</strong><br />

addRule:<br />

addRule($type,$field,<br />

$errormsg,$options="")<br />

Donde:<br />

• $type, debe indicar una de las 26 reglas<br />

disponibl<strong>es</strong>.<br />

• $field, <strong>es</strong> el nombre del campo al cual le<br />

aplicamos la regla.<br />

• $errormsg, incluimos el mensaje de error<br />

que entregará si no se cumple la regla.<br />

• $options, lo utilizaremos para indicar los<br />

filtros para d<strong>es</strong>infectar los valor<strong>es</strong> ingr<strong>es</strong>ados<br />

(lo veremos más adelante) y también<br />

para indicar opcion<strong>es</strong> <strong>es</strong>pecial<strong>es</strong> que puedan<br />

requerir las distintas reglas (también<br />

lo veremos en un apartado posterior).<br />

En el siguiente bloque verás todas las reglas<br />

que incluiremos para los campos que hemos<br />

definido en nu<strong>es</strong>tro ejemplo (Listado 7).<br />

En la siguiente imagen podemos ver el<br />

formulario ant<strong>es</strong> de enviarlo y luego una vez<br />

enviado, pero con error<strong>es</strong> (Figura 5).<br />

Limpiando ant<strong>es</strong> de validar<br />

Es probable que en algunos casos el usuario pueda<br />

ingr<strong>es</strong>ar valor<strong>es</strong> que nec<strong>es</strong>iten ser limpiados ant<strong>es</strong><br />

de proc<strong>es</strong>arlos (por ejemplo, por error al teclear<br />

o para eliminar caracter<strong>es</strong> peligrosos). Para <strong>es</strong>tos<br />

casos php cuenta con filtros <strong>es</strong>pecial<strong>es</strong> que también<br />

pued<strong>es</strong> ocupar con Muuu. Su uso <strong>es</strong> muy<br />

simple, basta con que definas dentro de $options,<br />

del método addRule, un array con dos valor<strong>es</strong>:<br />

• filter_id: Para el ID del filtro que d<strong>es</strong>eas utilizar,<br />

según: http://www.php.net/manual/<strong>es</strong>/<br />

filter.filters.sanitize.php (primera columna).<br />

• filter_flag: Para definir algún flag para el<br />

filtro, según lo indicado en: http://www.php.<br />

net/manual/<strong>es</strong>/filter.filters.sanitize.php (cuarta<br />

columna).<br />

De <strong>es</strong>ta manera, al incluir un filtro, <strong>es</strong>te será<br />

aplicado ant<strong>es</strong> de que se ejecute la regla definida<br />

para el campo.<br />

Por ejemplo, cuando obtenemos datos d<strong>es</strong>de<br />

un formulario y los queremos usar en consultas<br />

en nu<strong>es</strong>tra base de datos, <strong>es</strong> recomendable primero<br />

<strong>es</strong>capar las comillas. Para hacer <strong>es</strong>to agregamos<br />

un filtro en nu<strong>es</strong>tras opcion<strong>es</strong>:<br />

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

ombre","El campo 'nombre' <strong>es</strong><br />

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

FILTER_SANITIZE_MAGIC_QUOTES));<br />

Listado 6. Agregamos campos select, radio y checkbox<br />

www.lpmagazine.org<br />

programación<br />

php – Muuu Forms<br />

// Incluímos un "select" para consultar sobre el tipo de usuario. Para los<br />

valor<strong>es</strong> del "select" agregamos un array dentro de "options"<br />

$form->addField("select","tipousuario","Tipo de Usuario:", array("selectVa<br />

lu<strong>es</strong>"=>array("basico"=>"B&aacute;sico","intermedio"=>"Intermedio","avanzad<br />

o"=>"Avanzado")));<br />

// Mediante boton<strong>es</strong> del tipo "radio" consultaremos que tipo de booteo<br />

tiene nu<strong>es</strong>tro usuario. Al igual que ocurre con "select" definimos los<br />

distintos "radio" mediante un array.<br />

$form->addField("radio","booteo","Qué sistemas tien<strong>es</strong> en tu equipo:",<br />

array("radioValu<strong>es</strong>"=>array("sololinux"=>"S&oacute;lo Linux",\<br />

"linuxwindows"=>"Linux y Windows","solowindows"=><br />

"S&oacute;lo Windows")));<br />

// Mediante "checkbox" consultamos sobre qué distribucion<strong>es</strong> conoce<br />

o ha usado<br />

$form->addField("checkbox","conteo","Qué distros conoc<strong>es</strong> o has usado:<br />

",array("checkboxValu<strong>es</strong>"=>array("debian"=>"Debian","ubuntu"=><br />

"Ubuntu","fedora"=>"<strong>Fedora</strong>","otra"=>"Otra")));<br />

// Por último mediante un "textarea" consultamos si existe alguna<br />

información adicional que se d<strong>es</strong>ee agregar<br />

$form->addField("textarea","opinion","&iqu<strong>es</strong>t;<br />

Algo que quieras agregar:?");<br />

Listado 7. Definición de todas las reglas para los campos<br />

// Los campos "nombre", "apellido", "usuario" y "clave", los indicamos<br />

como requerido ("required"). En cada campo que tenga <strong>es</strong>ta regla se<br />

incluirá automáticamente un asterisco rojo<br />

$form->addRule("required","nombre","El campo 'nombre'<br />

no puede <strong>es</strong>tar vac&iacute;o");<br />

$form->addRule("required","apellido","El campo 'apellido'<br />

no puede <strong>es</strong>tar vac&iacute;o");<br />

$form->addRule("required","usuario","El campo 'usuario'<br />

no puede <strong>es</strong>tar vac&iacute;o");<br />

$form->addRule("required","clave1","El campo 'clave 1'<br />

no puede <strong>es</strong>tar vac&iacute;o");<br />

$form->addRule("required","clave2","El campo 'clave 2'<br />

no puede <strong>es</strong>tar vac&iacute;o");<br />

// El campo que consulta la fecha de nacimiento lo filtraremos<br />

con la regla "date" la cual exige que el valor que se ingr<strong>es</strong>e<br />

sea una fecha válida<br />

$form->addRule("date","nacimiento","El campo 'Fecha de nacimiento' no<br />

tiene un formato correcto");<br />

// El campo email lo filtramos con la regla "email" para obtener un correo<br />

con formato válido<br />

$form->addRule("email","correo","El campo 'correo' no tiene un formato<br />

correcto");<br />

// Para el campo del nombre de usuario indicamos la regla "rangelength"<br />

para permitir solamente valor<strong>es</strong> entre 2 y 10 caracter<strong>es</strong><br />

$form->addRule("rangelength","usuario","El nombre de usuario no puede<br />

tener menos de 2 y m&aacute;s de 10 caracter<strong>es</strong>",array("minlength"=>2,\<br />

"maxlength"=>10));<br />

// Por último solicitamos que la clave y la verificación de <strong>es</strong>ta sean<br />

igual<strong>es</strong>, <strong>es</strong>to lo hacemos con la regla "equal"<br />

$form->addRule("equal","clave1","Las 'clav<strong>es</strong>' no son igual<strong>es</strong>",<br />

array("equalfield"=>"clave2"));<br />

87

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

Saved successfully!

Ooh no, something went wrong!