Skip to content

previene el spoofing de dominios en validación de enlaces + agrega dominios relevantes en el validador#7

Open
valnssh wants to merge 6 commits intopmemoli:mainfrom
valnssh:main
Open

previene el spoofing de dominios en validación de enlaces + agrega dominios relevantes en el validador#7
valnssh wants to merge 6 commits intopmemoli:mainfrom
valnssh:main

Conversation

@valnssh
Copy link
Copy Markdown
Contributor

@valnssh valnssh commented Jul 7, 2025

La implementación actual de validateLink utiliza includes para verificar si una URL pertenece a una fuente confiable, lo mismo ocurre para la comprobación de https://. Esto permite a un atacante spoofear dominios válidos mediante subdominios o poner esos nombres en el path, lo mismo ocurre para https://.

PoC:
Un atacante podría usar una URL como https://github.atacante.com/..., https://atacante.com/github/... o http://atacante.com/...?...&x=https://github y pasar la validación, ya que la función solo chequea que el string contenga "github" y "https://".

Este merge request reemplaza esa lógica por una validación basada en expresiones regulares que asegura coincidencia exacta con los dominios válidos definidos, y sigue permitiendo subdominios de los mismos.

Además, se ampliaron los dominios permitidos para incluir nuevas fuentes relevantes como gitlab.com, git.exactas.uba.ar y el campus viejo de la facultad, que aún contiene material relevante. Se podría aprovechar la validación por regex que implementa en este merge request para tomar directamente "exactas.uba.ar" como dominio válido, pero tampoco me parece mal segregar por subdominios de la facultad, y así forzar que los links sean del campus.

@netlify
Copy link
Copy Markdown

netlify Bot commented Jul 7, 2025

Deploy Preview for machete-exactas failed.

Name Link
🔨 Latest commit 7f3ea7f
🔍 Latest deploy log https://app.netlify.com/projects/machete-exactas/deploys/686fe462ff5e5e0008852151

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

Successfully merging this pull request may close these issues.

1 participant