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?
string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )
:http://php.net/manual/es/function.htmlentities.php
Cita de: Shell Root en 20 Julio 2011, 06:59 AM
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=
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/
<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:
<b> => <b>