Ok,
Viendo el DOM tree con Firebug , eh visto el objecto y todas su propiedades establecidas al inicializar.
Tambien puedo editarlas, solo en mi propio window los otros usuarios no son actualizado si cambio algo..
Si mando algo el server habiendo editado la propiedad predeterminada es factible crashiar el Server sin problemas..
Código Javascript
:
Ver originalvar myObject = function (){
this.defaultOption = 'Setting an string';
}
myObject.prototype.init = function(){
var self = this;
setInterval(function(){
console.log( typeof self.defaultOption );
client.emit('logIn' , { string : self.defaultOption } );// manda el string al server
}, 3000);
}
var app = new myObject().init();
Aquí el ejemplo lo hago en intervalo, pero si fuera que utilizo la propiedad del objecto en una forma de un Select , al parecer puedo con Firebug ver la propiedad
y cambiarla con objecto TRUE..
Sabia que el client side era vulnerable, pero si debemos hacer codigo para Node, necesitamos observar que los objetos que son enviados al Node son del tipo que esperamos..
Código Javascript
:
Ver originalsocket.on('logIn' , function( ob ){
if( typeof ob !== 'undefined' ){
var string = ob.string.trim() // tratamos de limpiar, erro Object true has no method trim()
}
// serciorandonos
if( typeof ob !== 'undefined' && typeof ob.string === 'string' ){
var string = ob.string.trim() // Limpiamos sin errores
}
});
Como ven , hay una curva mas grande cuando se trabaja con Node..
Ya no le tengo confianza a nada.