Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Falsificacion de ip Security.TrustUserIP( c.ClientIP() #1

Closed
PacodiazDG opened this issue Jan 21, 2019 · 8 comments
Closed

Falsificacion de ip Security.TrustUserIP( c.ClientIP() #1

PacodiazDG opened this issue Jan 21, 2019 · 8 comments

Comments

@PacodiazDG
Copy link

Si no se usa un proxy inverso se puede falsificar los headers " X-Forwarded-For: " esto permite darle ban a las ip de los usuarios

IP real
image


IP de la victima :v XD

image


image

@fernandez14
Copy link
Contributor

Si entiendo bien ¿estás utilizando el hecho de que un usuario baneado puede propagar este status a las IP's desde las que accede?

Imagino que con esto y falsificando la dirección en cuestión puedes "banear" a otros users

¿Te entiendo bien? @Pacodiaz2g

@PacodiazDG
Copy link
Author

si, ese usuario tiene ban y lo uso para darle ban a otros

@fernandez14
Copy link
Contributor

Como escenario ideal esto lo prevenimos justamente con el proxy inverso, de lo contrario, ¿qué otra solución se te ocurre?

@RodrigoCR
Copy link
Collaborator

Como el tema está en el baneo por IP, quizá creo que la metodología para el foro así vanilla sería más un baneo simple (por user) o como lo manejan en otros lados, una suspensión (el usuario podría iniciar sesión pero con permisos de guest).

Ahora, el baneo por IP no es mala idea, por lo que podríamos intentar implementarlo directamente con Go (hay alternativas, pero para dejar simple el deployment sería lo más adecuado).

Me topé con este artículo: https://imti.co/golang-reverse-proxy/ haré unas pruebas y a ver qué sale.

@PacodiazDG
Copy link
Author

El problema es que el puerto 3000 está permitiendo tráfico, por lo que el proxy inverso no protege una solución temporal es configurar el firewall para que sólo permita el tráfico de 127.0.0.1 y que rechace los paquetes de otras ip's

image

Encontre un caso similar

gin-gonic/gin#1684

@fernandez14
Copy link
Contributor

Entiendo @Pacodiaz2g, de hecho la solución si será apuntar el backend a un puerto que no este expuesto en la red publica, en cuestión de Anzu definitivamente tendrá que ser un comportamiento por defecto al levantar el server de gin-gonic, muchas gracias por la info!

@RodrigoCR El proxy reverso en este caso se hace con nginx por ser el server http publico, se solucionará con el tema del bind al puerto en el server que levanta el back.

Gracias por sus contribuciones! espero podamos encontrar y mitigar los problemas que más pudiesen afectar el lanzamiento y fechas posteriores

@fernandez14
Copy link
Contributor

@Pacodiaz2g el servicio en producción de buldar/spartangeek quedó ajustado para sólo escuchar red local, ¿me confirmas que ya no tienes acceso?

@PacodiazDG
Copy link
Author

si, ya esta cerrado

PORT     STATE  SERVICE VERSION

3000/tcp closed ppp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants