[eside-ghost] Problemas con una web en PHP (y yo no saber)
flmn
flamenjaut en gmail.com
Dom Ago 10 19:31:58 CEST 2008
Aupa,
La validación de formularios 'únicamente' mediante javascript no suele ser
una práctica recomendable por
lo fácil que resulta saltártelos (bastaría con desactivar javascript en el
navegador).
Un ejemplo de validación, del lado del servidor, con el script de php
anterior quedaría así:
var $never_allowed_str = array(
'document.cookie' => '[removed]',
....
);
var $never_allowed_regex = array(
"javascript\s*:" => '[removed]',
....
);
foreach ($this->never_allowed_str as $key => $val)
{
$_POST['nick'] = str_replace($key, $val, $_POST['nick']);
$_POST['nombre'] = str_replace($key, $val, $_POST['nombre']);
...
}
foreach ($this->never_allowed_regex as $key => $val)
{
$_POST['nick'] = preg_replace("#".$key."#i", $val,
$_POST['nick']);
$_POST['nombre'] = preg_replace("#".$key."#i", $val,
$_POST['nombre']);
...
}
Una vez hecho esto ya tienes los campos nick y nombre 'limpios' y puedes
guardarlos en la base de datos.
El script reemplaza las cadenas de texto peligrosas por [removed], si
quieres borrarlas cambia los '[removed]' por ''
en los arrays
Salu2
El 10 de agosto de 2008 18:39, Javier Ortega Conde (Malkavian) <
malkavian666 en gmail.com> escribió:
> ¡Aupa flmn!:
>
> Gracias, no se como meter exactamente ese código pero bueno... Mi idea era
> alguna forma de que no se interprete el código. La tuya va por prohibir
> el uso de ciertas palabras clave. Se me ocurre que sería mejor quizás
> añadir unos IFs al formulario de inscripción, para que ni siquiera puedan
> insertarse esos datos en la base de datos... De hecho el formulario ya
> tiene unos IFs de comprobación de los campos. Adjunto el archivo... Para
> hacerlo, si alguien me pone un ejemplo de comocomprobar en javascript si
> cierta variable contiene cierto trozo de texto...
>
>
>
> > Para el tema de las injecciones javascript prueba con lo siguiente:
> >
> > var $never_allowed_str = array(
> > 'document.cookie' =>
> > '[removed]', 'document.write' => '[removed]', '.parentNode'
> > => '[removed]', '.innerHTML' => '[removed]', 'window.location'
> > => '[removed]', '-moz-binding' => '[removed]', '<!--'
> > => '<!--', '-->' => '-->', '<![CDATA['
> > => '<![CDATA[' );
> >
> >
> > var $never_allowed_regex = array(
> > "javascript\s*:" =>
> > '[removed]', "expression\s*\(" => '[removed]', "Redirect\s+302"
> > => '[removed]' );
> >
> > foreach ($this->never_allowed_str as $key => $val)
> > {
> > $str = str_replace($key, $val, $str);
> > }
> >
> > foreach ($this->never_allowed_regex as $key => $val)
> > {
> > $str = preg_replace("#".$key."#i", $val, $str);
> > }
> >
> >
>
>
> --
> Agur: Javier Ortega Conde (Malkavian)
> ------------------------------------------------------------------------
> La página de Malkavian: De todo un poco http://malkavian.homelinux.org
> Miembro del Grupo de LinUxuarios de Bizkaia (GLUB) http://glub.biz
> Miembro de Eghost, Itsas, Ether, GULA, GLUGI, Guardianes del Túmulo...
> ------------------------------------------------------------------------
> Ley de las Colas y Embotellamientos: La cola de al lado siempre anda más
> rápido. No ayuda cambiar de carril. La ley no se altera.
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
--
Para quien seca sus lágrimas sin darse por vencido y a pesar de la fatiga
sigue su camino. Para quien lucha, para quien sigue vivo, buscando un
sentido. Los mayores héroes son desconocidos...
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20080810/0e9a67c2/attachment.htm
Más información sobre la lista de distribución eside-ghost