Autor
|
Tema: Seguridad: Como puedo validar el filename en AJAX? (Leído 4,345 veces)
|
Citrusl
Desconectado
Mensajes: 24
|
AYUDA! Estamos trabajando en un módulo web de formulario utilizando dropzone (El clásico Drag and Drop files). Nos prohibieron el uso de PHP por los riesgos e inseguridad que representa su uso. En su reemplazo utilizamos ASP.NET con MVC, javascript, AJAX y mySQL. Actualmente un simple AJAX hace el upload a la carpeta del servidor con un metodo POST. Existen algunas validaciones que vienen incluidas en Dropzone como por ejemplo, el formato de imagenes o el tamaño: Ejemplo: <script type="text/javascript"> Dropzone.autoDiscover = false;
$(document).ready(function () {
$("div#myAwesomeDropzone").dropzone( { paramName: "file", maxFiles: 6, maxFilesize: 1000, // MB acceptedFiles: ".png,.jpg,.gif,.bmp,.jpeg", addRemoveLinks: true, }); }); </script> Sin embargo, nos asustamos al ver la gran vulnerabilidad e ineficacia contra Exploits de distintos tipos (unos 12 aproximadamente) manipulando simplemente el filename. Cómo metodo de seguridad alternativo obfuscamos los codigos javascript, lo cual nos da tiempo. Alguien podría recomendarme o mostrarme una validacion completa en AJAX para prevenir estos ataques?Ataques: https://www.owasp.org/index.php/Unrestricted_File_Uploadhttps://www.hackingarticles.in/5-ways-file-upload-vulnerability-exploitation/
|
|
|
En línea
|
|
|
|
engel lex
|
Nos prohibieron el uso de PHP por los riesgos e inseguridad que representa su uso creo que el que dijo eso no está muy solido en el tema XD Sin embargo, nos asustamos al ver la gran vulnerabilidad e ineficacia contra Exploits de distintos tipos (unos 12 aproximadamente) manipulando simplemente el filename.
Cómo metodo de seguridad alternativo obfuscamos los codigos javascript, lo cual nos da tiempo.
Alguien podría recomendarme o mostrarme una validacion completa en AJAX para prevenir estos ataques?
y esto lo confirma! XD primero ofuscar javascript de nada ayuda, oscuridad no es seguridad, a fin de cuenta si el navegador lo puede entender un usuario con suficiente conocimiento (como quien vaya a querer explotar vulnerabilidades) lo podrá entender, usando al navegador para que lo traduzca... segundo en cliente no se hace seguridad, en cliente se hacen metodos para el usuario y su interaccion, puedes hacer una "seguridad" basica pero es para la apreciacion del usuario, no nada sensible ya que todo lo de cliente es perfectamente modificables y falsificable... la seguridad se hace en servidor... por otro lado, php y asp en seguridad practicamente no tienen diferencia, sin embargo php es codigo abierto y muhco mas usado (mas del 80% de las paginas en internet) asi que la comunidad de php constantemente está en búsqueda de errores, correcciones y optimizaciones. tiene mas apoyo de la comunidad de foss asi que puedes conseguir mas ayuda, mas librerías, frameworks y otras cosas... primera vez que escucho tal argumento en mas de 10 años XD
|
|
« Última modificación: 2 Diciembre 2019, 01:20 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
engel lex
|
El desarrollo de la aplicación se valua en 1.8Millones aprox. ehmm.... mejor no digas el nombre XD ya estás en valor legal de ser denunciao por difamacion a la marca XD 1.8 millones de euros/dollares, el equipo de programacion y seguridad no confian entre ellos y el equipo de programación tiene dudas de seguridad que requieren ayuda externa... bueno no nos extendamos XD
bueno en resumen aunque sea en movil, la seguridad de cliente es solo decorativa... te lo digo porque tengo experiencia trabajando en ambas partes (protegiendo y sacando datos) if(preg_match('/^[a-z0-9-]+\.ext$/', $file)) { // .. upload } else { echo 'The file "' . $file . '"was not uploaded. The file can only contain "a-z", "0-9" and "-". Allso the files must be lowercase. ';
} el ejemplo entre lo que cabe está completo preg_match es solo para verificar si la expresión en regex coincide con el texto... asi que es solo corregir el regex a los casos específicos y listo...
|
|
« Última modificación: 2 Diciembre 2019, 02:07 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Citrusl
Desconectado
Mensajes: 24
|
Gracias Engel Lex! Veré como sigue la cosa mañana, Dejo link del libro por si alguien se enfrenta a lo mismo (descarguen y archiven antes de que lo quiten) No estoy a favor de la descarga pirata de libros además de adorar los físicos por sobre los digitales pero si te encuentras en aprietos económicos o eres fan y hacen de tu pasión un negocio aquí va gratis: http://index-of.es/Programming/Ajax/O'Reilly%20Securing%20AJAX%20Applications.pdfSaludos!!
|
|
|
En línea
|
|
|
|
engel lex
|
excelente libro, ese hace tiempo orelly lo tuvo gratis para descarga durante una semana de nuevo insisto... la seguridad de lado de cliente es solo pantomima, asegura del lado de servidor... incluso en una aplicacion en java o c++ se pueden capturar los datos que salen (por muy asegurados que salgan, puedes manipularlo para que puedas leer los datos) para entender el protocolo y hacer una aplicacion que simule ser la original pero con malas intenciones sobre el stack es decisión gerencial pero yo recomendaría 1000 veces primero php con un buen framework (ej. codeigniter) que asp ya que el framework (si es uno bueno) te da toda una capa de seguridad y de manejo de datos de forma segura sobre php y funciones extra optimizadas para facilitar el trabajo sobre el php depende de la aplicacion algo que se hace es colocarle un nombre "al azar" al llegar al servidor y por medio de base de datos se asocia, asi evitas problemas mayores... el nombre del archivo no es el unico peligroso, el contenido tambien, así que cuidado con ello
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Como puedo validar esto?
« 1 2 »
Programación Visual Basic
|
Dreamaker
|
17
|
8,298
|
31 Mayo 2010, 11:31 am
por LeandroA
|
|
|
Validar formulario AJAX-PHP e imprimir respuesta
Desarrollo Web
|
ZharkD
|
4
|
6,336
|
19 Julio 2010, 06:58 am
por ZharkD
|
|
|
[Batch] Como puedo validar la variable? [Solucionado]
« 1 2 »
Scripting
|
Batitoul
|
13
|
13,047
|
12 Septiembre 2011, 00:20 am
por leogtz
|
|
|
como puedo validar el login
« 1 2 »
PHP
|
geshiro
|
12
|
5,694
|
8 Junio 2015, 01:45 am
por kaiserr
|
|
|
[Resuelto] ¿Como puedo obtener una URL con PHP desde un archivo AJAX?
« 1 2 »
Desarrollo Web
|
Leguim
|
11
|
5,829
|
20 Agosto 2019, 01:14 am
por MinusFour
|
|