lunes, 28 de marzo de 2016

Programando una web segura 2


2.- Exposición de variables al usuario 
Es importante saber que si manejamos variables  donde dependas de métodos GET y POST, las cuales pueden ser editadas por los usuarios , estas deben de tener sentenciada un formato de entrada. Es decir, si deseas que inserte números, sólo admitir número, y si es texto y éstas son almacenada en la base de datos que procedente serán publicadas en el sitio como son las cajas de comentarios o publicación de post,  evitar que contengan símbolos el cual el servidor puede leerlos como html (<h1><iframe>) ya que si permites la entrada de símbolos como (<, >) el servidor  lo interpreta, las personas mal intencionadas podrían agregar un simple iframe para robo de cookies o un refresh para pseudo hackear, esta vulnerabilidad llamada xss, xsrf afecta a múltiples sitios los cuales no filtran sus variables y esto permite que podamos introducir código malicioso.
Ahora, otra cosa que afecta mucho a los sitios son las inyecciones sql , estas ocurren porque el sitio le da la confianza de elegir mediante el metodo GET la pagina que visitara , es decir 
"www.example.com/page.php?cat=1" desde ese entonces, la informaciób de la variable CAT del sitio se vuelve complemento de la consulta SQl , una consulta para este tipo se orgina de esta forma , SELECT * FROM table WHERE id =$_GET['cat'] ; 
Desde ese momento  se puede modificar la consulta y ocupar de una inyección de código malicioso para obtener nombre de tablas y columnas  y asi, hasta llegar  al user y pass. No solamente ocurre en métodos GET sino también en post, cuando se realiza consulta para comparar datos de entrada con las almacenadas, como los logins, comparan datos que se ingresan con los que se tienen en la base de datos, con solamente aplicar un bypass es posible logearnos como administrador. Todo esto se soluciona ocupando funciones como mysqli_real_escape_string , u ocupando str_remplace la cual reemplaza los caracteres que se asignen dentro de la función. Puedes agregar cuantas funciones pasen en tu mente, de igual manera podremos asegurar el login en el caso de que el administrador tenga una ip estática, comparar la ip entrante con la ip real del admin y asi evitar que cualquier persona ya sea con user y pass correcto entren al panel de administración. La seguridad de los sitios webs nunca esta de mas.


No hay comentarios:

Publicar un comentario