soluciones simples al injection html y al cros site script

Iniciado por Kase, 20 Julio 2011, 06:43 AM

0 Miembros y 1 Visitante están viendo este tema.

Kase

bueno, creo que estos errores son de cualquier novato que no conoce la malia de la gente..  e incluso a cualquiera sele pueden pasar

ami me ocurrio aller,   deje vulnerable un sitio a  cros stite scripting y unos camaradas se dieron cuenta y me jodieron un poco para  que lo corrijiera y en otro sitio tengo html injection ( por que me era indispensable que el usuario pudiera meter html)

y bueno para el html injection seme ocurrio este simple metodo para php:

Citar$stop_injection = array('<script>','<iframe>','</script>','</iframe>','<div>','</div>','<script','<i frame','<div')
str_ireplace($stop_injection,'', $texto_a_blindar)
solo me preocupa el javascript y los iframes,  el </div> es para que ningun gracioso arruine la estructura de la pagina.


y para el cross site solo seme ocurre validar la url desde donde proceden los datos, o si es una session del usuario, validar la session

conocen metodos mejores y simples de implementar?

Shell Root

Código (php) [Seleccionar]
string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )
:http://php.net/manual/es/function.htmlentities.php
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Kase

Cita de: Shell Root en 20 Julio 2011, 06:59 AM
Código (php) [Seleccionar]
string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )
:http://php.net/manual/es/function.htmlentities.php

lamentablemente necesito que mis usuarios tengan acceso a html D=
a <b> <strike> <i> <table>  e incluso a <form> 

T-T

htmlentitles me limitaba demasiado D=

Shell Root

#3
Ps en esté caso si deberías de tener un array con las etiquetas que no sean permitidas, realizar una expresión regular y eliminarlos.

:http://www.ribosomatic.com/articulos/editor-de-texto-wysiwyg-para-drupal/
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

WHK

#4
Código (html4strict) [Seleccionar]
<b onmouseup="alert(document.cookie)" style="width: 100%; height: 500px;">:)</b>

Para habilitar contenido HTML y evitar XSS la tienes bién negra, aun no existe NADA infalible, existen bases de datos con expresiones regl¡ulares hechas por los mejores hackers en el tema y aun asi todos los dias son actualizados (vease phpids.org y htmlpurifier).
Ejemplo: view-source:https://dev.itratos.de/projects/php-ids/repository/raw/trunk/lib/IDS/default_filter.xml

sdc hizo una mejor solución, aceptar html pero prevenir toda ejecución de javascript incluyendo la de tu sitio. En algunos casos sirve: http://code.taobao.org/svn/ACS/trunk/acs.js

Me gusta la linea 838 de ese sandbox jajajajajajaja

Lo otro que podrías hacer es filtro inverso, o sea pasar absolutamente todo a htmlspecialchars y luego a nl2br() mas str_replace() reemplazando cosas como:
&lt;b&gt; => <b>