elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Seguridad: Como puedo validar el filename en AJAX?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Seguridad: Como puedo validar el filename en AJAX?  (Leído 4,384 veces)
Citrusl

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Seguridad: Como puedo validar el filename en AJAX?
« en: 2 Diciembre 2019, 00:53 am »

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:

Código:
    <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_Upload
https://www.hackingarticles.in/5-ways-file-upload-vulnerability-exploitation/





En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Seguridad: Como puedo validar el filename en AJAX?
« Respuesta #1 en: 2 Diciembre 2019, 01:17 am »

Citar
Nos prohibieron el uso de PHP por los riesgos e inseguridad que representa su uso

 :xD :xD :xD :xD


creo que el que dijo eso no está muy solido en el tema XD

Citar
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.
Citrusl

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Seguridad: Como puedo validar el filename en AJAX?
« Respuesta #2 en: 2 Diciembre 2019, 01:39 am »

Realmente no soy un experto en esto de la web, siempre fui más amante del C/C++ dios como lo extraño.

Creo que lo que busco está en este libro:
https://books.google.com.ar/books?id=hi5GSxAm564C&pg=PA132&lpg=PA132&dq=ajax+filename+secure+validation&source=bl&ots=ye9NYhlvek&sig=ACfU3U0XJg1-dr5E36uzCyZ23uPgdPRs1Q&hl=en&sa=X&ved=2ahUKEwjR3OWSpZXmAhVBCrkGHZHSAYkQ6AEwAXoECAoQAQ#v=onepage&q=ajax%20filename%20secure%20validation&f=false

vi algunos ejemplos donde filtran por caracteres especiales y doble extensión pero sospecho que no esten completos.

Creo que en PHP lo hacen asi:

Código:
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. ';

}

En otros ejemplos más profesionales hasta abrían el archivo y lo leían en búsqueda interna si era posible, como string o hexadecimal.

Realmente la seguridad del servidor la maneja otro equipo del cual no confío ni tengo mucho acceso. Y bueno quería hacer lo posible del lado front-end cliente.
Es del estilo mobile por lo que no nos dejan utilizar muchos paquetes o aplicativos pesados para ahorrar en performance.
El desarrollo de la aplicación se valua en 1.8Millones aprox.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Seguridad: Como puedo validar el filename en AJAX?
« Respuesta #3 en: 2 Diciembre 2019, 02:00 am »

Citar
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)

Código:
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 Desconectado

Mensajes: 24


Ver Perfil
Re: Seguridad: Como puedo validar el filename en AJAX?
« Respuesta #4 en: 2 Diciembre 2019, 02:21 am »

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.pdf

Saludos!!
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Seguridad: Como puedo validar el filename en AJAX?
« Respuesta #5 en: 2 Diciembre 2019, 02:31 am »

excelente libro, ese hace tiempo orelly lo tuvo gratis para descarga durante una semana :P

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.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Como puedo validar esto? « 1 2 »
Programación Visual Basic
Dreamaker 17 8,351 Último mensaje 31 Mayo 2010, 11:31 am
por LeandroA
Validar formulario AJAX-PHP e imprimir respuesta
Desarrollo Web
ZharkD 4 6,340 Último mensaje 19 Julio 2010, 06:58 am
por ZharkD
[Batch] Como puedo validar la variable? [Solucionado] « 1 2 »
Scripting
Batitoul 13 13,074 Último mensaje 12 Septiembre 2011, 00:20 am
por leogtz
como puedo validar el login « 1 2 »
PHP
geshiro 12 5,731 Último mensaje 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,895 Último mensaje 20 Agosto 2019, 01:14 am
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines