[Resuelto] buscar la cadena '<?' dentro de otra cadena con javascript

Iniciado por srccver, 9 Abril 2015, 19:22 PM

0 Miembros y 3 Visitantes están viendo este tema.

srccver

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.

MinusFour

¿Que es exactamente textbox? ¿Un form control o contenteditable? Me funciona perfectamente a mi si utilizo value:

http://jsfiddle.net/Lwmb89aa/

srccver

textbox es contenteditable. Es una área para que el usuario pueda capturar texto con algo de formato HTML.

MinusFour

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.

srccver

MIl gracias. Funciona perfectamente como me sugeriste.