Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Mensaje iniciado por: srccver en 9 Abril 2015, 19:22 PM

Título: [Resuelto] buscar la cadena '<?' dentro de otra cadena con javascript
Publicado por: srccver en 9 Abril 2015, 19:22 PM
Para validar el texto ingresado por el usuario en un textbox busco, entre otras cosas, las cadenas 'script' y '<?'. Esto con la intención de evitar que introduzca códigos de JS y de PHP. Obviamente, vuelvo a validar la cadena desde PHP, pero me gustaría validarla antes en JS.

Lo hago de esta forma:

Código (javascript) [Seleccionar]
var texto = document.getElementById("textbox").innerHTML;
var minuscula = texto.toLowerCase();

if (minuscula.indexOf('script') > -1)
   aler("CADENA INVALIDA");

if (minuscula.indexOf('<?') > -1)
   aler("CADENA INVALIDA");


La búsqueda de 'script' funciona perfectamente, pero cuando introduzco la cadena <? no la detecta.

¿Como puedo validar el texto y evitar que se introduzca código de PHP?

Gracias de antemano.

Mod: Utilizar etiquetas GeSHi para código.
Título: Re: buscar la cadena '<?' dentro de otra cadena con javascript
Publicado por: MinusFour en 9 Abril 2015, 19:49 PM
¿Que es exactamente textbox? ¿Un form control o contenteditable? Me funciona perfectamente a mi si utilizo value:

http://jsfiddle.net/Lwmb89aa/
Título: Re: buscar la cadena '<?' dentro de otra cadena con javascript
Publicado por: srccver en 9 Abril 2015, 20:20 PM
textbox es contenteditable. Es una área para que el usuario pueda capturar texto con algo de formato HTML.
Título: Re: buscar la cadena '<?' dentro de otra cadena con javascript
Publicado por: MinusFour en 9 Abril 2015, 20:41 PM
Cita de: srccver en  9 Abril 2015, 20:20 PM
textbox es contenteditable. Es una área para que el usuario pueda capturar texto con algo de formato HTML.

Prueba entonces con textContent en lugar de innerHTML. Creo que nodeValue tambien pueden ser. Lo que pasa con InnerHTML es que te convierte los simbolos a html entities. Entonces si tienes '<?' en tu div, InnerHTML tiene: '&lt;?'.

Espero te des cuenta que comprobaciones del lado del cliente deben ser renforzadas por comprobaciones del lado del servidor.
Título: Re: buscar la cadena '<?' dentro de otra cadena con javascript
Publicado por: srccver en 9 Abril 2015, 20:52 PM
MIl gracias. Funciona perfectamente como me sugeriste.