11.-ataques xss y crsf.parte 1

Upload: juanaves

Post on 24-Feb-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 11.-Ataques Xss y Crsf.parte 1

    1/3

    ATAQUES XSS, COMOPREVENIRLOS EN PHP

    Los ataques XSS (Cross Site Scripting) suelen ser la forma ms habitual

    que emplean los piratas informticos para atacar una pgina web. Para ello

    se aprovechan de ciertos fallos de seguridad, sobre todo, en el ltrado y

    validacin de campos de entrada. A travs de los cuales puede enviar script

    o comandosmaliciosos que nos afectan tanto a nuestro sitio web como al pc

    del usuario que nos visita.

    !n e"emplo bsico de ataque mediante XSSo inyeccin de cdigo

    puede ser

    http#$$www.ataque%ss&php.com$search'p()script*alert+-ola&mundo/)$script*

    0n esta ocasin el ataque se reduce a mostrar un mensa"e de alerta en el

    equipo del usuario que nos visita, dado que el cdigo HTMLsoo se

    e!ec"t# en e e$"ipo %e cienteno en e ser&i%or. 0ste inofensivo

    ataque se ha aprovechado de una vulnerabilidad en un campo de entrada,

    el buscador. Podr1a haber sufrido un ataque ms da2ino, como el robo de

    informacin condencial alo"ada en su equipo.

    3uando desarrollamos un sitio web con P-P debemos tener cuidado con

    formularios, buscadores, lugares susceptibles para poder llevar a cabo un

    ataque mediante XSS. Por lo que debemos siempre vericar toda la

    informacin que nos faciliten los usuarios, ltrando determinados caracteres

    especiales que potencialmente pueden ser peligrosos.

    Para ello P-P dispone de una serie de funciones que pueden sernos 4tiles a

    la hora de proteger nuestra web frente a posibles ataques mediante 566.

    -oy veremos algunas de ellas, como strip7tags o 8nput 9ilter.

    http://www.pedroventura.com/tag/seguridad/http://www.pedroventura.com/tag/comandos/http://www.pedroventura.com/tag/html/http://www.pedroventura.com/tag/comandos/http://www.pedroventura.com/tag/html/http://www.pedroventura.com/tag/seguridad/
  • 7/25/2019 11.-Ataques Xss y Crsf.parte 1

    2/3

    Strip't#gs es una funcin que nos permite limpiar cualquier etiquetahtml que ha ingresado el usuario, de esta forma evitaremos los ataques ms

    bsicos, pero frente a un ataque ms elaborado p"e%e no ser s"ciente.

    PHP Inp"t iteres una c#sedesarrollada en P-P para el ltrado del

    posible cdigo malicioso que se pueda insertar a travs de un formulario.

    Para poder emplear necesitamos descargar la clase de la web ocial, incluir

    el archivo class.inputlter.php al inicio y crear una instancia de la clase

    8nput9ilter

    require_once("class.inputfilter.php");$ifilter = new InputFilter();

    :eamos un e"emplo, si tenemos un formulario en nuestra web que env1a los

    datos por el mtodo POST, con el siguiente cdigo ltrar1amos todos los

    campos de forma rapida y sencilla.

    require_once("class.inputfilter.php");$ifilter = new InputFilter();$_POST = $ifilter!process($_POST);

    La clase Inp"titer nos da la posibilidad de permitir que ciertasetiquetas o atributos puedan ser utili;adas por los usuarios, para ello solo

    necesitamos pasarle un array con el nombre de las etiquetas o atributos

    cuando creamos la instancia de la clase. Por lo que quedar1a de la siguiente

    forma#

    require_once("class.inputfilter.php");$ifilter = new InputFilter( arra(#e%&%stron'%);$ifilterau=new InputFilter(arra(%a%)&arra(#href%));

    La instancia ilter permitir1a la inclusin de las etiquetas em y strong en el

    formulario, mientras que la instancia ilterau% permitir1a el empleo del

    atributo href para que los usuarios puedan incluir enlaces en el formulario.

    !na aplicacin que puede sernos de gran utilidad es XSSpoit nos

    permitir locali;ar las vulnerabilidades de nuestra web antes de publicarla y

    evitar muchos problemas en el futuro.

    Por e"emplo, tenemos un sistema de comentarios en el cual slo queremos

    permitir determinadas etiquetas -

  • 7/25/2019 11.-Ataques Xss y Crsf.parte 1

    3/3

    funcin strip_tags()de P-P se convierte en vulnerable, >por qu', veamos

    un e"emplo#