Yii Framework Forum: [SOLUCIONADO]:Como no permitir código malicioso? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[SOLUCIONADO]:Como no permitir código malicioso? Rate Topic: ***** 2 Votes

#1 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 12 April 2010 - 08:11 AM

Hola, lo que sucede es que en una de mis aplicaciones un usuario pudo introducir en un campo de texto código javascript que fue almacenado en la BD y cuando se muestra el dato entonces el código es ejecutado, yo por ejemplo puedo evitar que se ejecute utilizando la función CHtml::encode() pero lo que quiero realmente es que no se pueda almacenar ese código javascript, alguien tiene una idea de como hacer esto?

Muchas gracias!
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 12 April 2010 - 08:17 AM

Como paso eso?
Si estas usando AR, esté ya toma las precauciones necesarias!
Como lo estas usando?
Don't say what you think, think what you say
The problem is communication! Excess of communication!
1

#3 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 12 April 2010 - 08:24 AM

Probaste usar la extensión SafeHtml???

http://www.yiiframew...ting-prevention

Saludos,
1

#4 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 12 April 2010 - 09:47 AM

View PostPoL, on 12 April 2010 - 08:17 AM, said:

Como paso eso?
Si estas usando AR, esté ya toma las precauciones necesarias!
Como lo estas usando?


Hola Poll, lo que pasa es que metieron código javascript, usando AR lo que puedo evitar es que metan código SQL segun tengo entendido.
0

#5 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 12 April 2010 - 09:51 AM

View Postsebas, on 12 April 2010 - 08:24 AM, said:

Probaste usar la extensión SafeHtml???

http://www.yiiframew...ting-prevention

Saludos,


Hola Sebas, gracias por la información, pero tengo una pregunta... lo que pasa es que con esta solución tengo que hacer cambios en todas las partes donde imprimo datos, pero hay forma de tener alguna solución parecida en el momento de guardar?, es decir, poder purificar el contenido de una variable pero antes de almacenarla en la BD... es posible?
0

#6 User is offline   ngleich 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 16-April 09

Posted 12 April 2010 - 10:21 AM

Se puede usar un filter validator y una funcion que filtra.

Para esto en rules se pone
array('campos', 'filter', 'filter'=>array($this,'purifyHtml')),

y crear una función en el modelo por ejemplo

public function purifyHtml($value) {
$purify = new CHtmlPurifier();
return $purify->purify($value);
}

Eso deberia andar para el guadar.
2

#7 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 12 April 2010 - 11:29 AM

View Postngleich, on 12 April 2010 - 10:21 AM, said:

Se puede usar un filter validator y una funcion que filtra.

Para esto en rules se pone
array('campos', 'filter', 'filter'=>array($this,'purifyHtml')),

y crear una función en el modelo por ejemplo

public function purifyHtml($value) {
$purify = new CHtmlPurifier();
return $purify->purify($value);
}

Eso deberia andar para el guadar.


Genial ngleich, muchas gracias.... funcionó!

Solo como por aprender más.... a alguien se le ocurre alguna otra idea para hacer este tipo de validaciones?
0

#8 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 14 April 2010 - 08:48 AM

View Postjuanmjimenezs, on 12 April 2010 - 11:29 AM, said:

Genial ngleich, muchas gracias.... funcionó!

Solo como por aprender más.... a alguien se le ocurre alguna otra idea para hacer este tipo de validaciones?


Si, podés hacerlo utilizando un behavior dentro de tu modelo. En el behavior creas la función beforeSave y ahí lo modificás.

Saludos,
1

#9 User is offline   juanmjimenezs 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 97
  • Joined: 15-May 09
  • Location:Colombia

Posted 14 April 2010 - 09:44 AM

View Postsebas, on 14 April 2010 - 08:48 AM, said:

Si, podés hacerlo utilizando un behavior dentro de tu modelo. En el behavior creas la función beforeSave y ahí lo modificás.

Saludos,



Ok, muchas gracias :)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users