Conceptos generales de seguridad

1

Ciberseguridad para Desarrolladores: Protege tus Proyectos y Datos

2

Principales Riesgos de Seguridad en Empresas y Cómo Mitigarlos

3

Principios de Seguridad en AWS: Autenticación, Autorización y Auditoría

Funciona en mi local

4

Configuración de Webhooks y API REST con Go y ngrok

5

Creación de repositorios seguros y prevención de SQL Injection

6

Creación de Métodos Testeables con Mocks en Go

Introducción a DevSecOps

7

Implementación de DevSecOps con GitHub Actions para Desarrolladores

8

Automatización de Pruebas en Go con GitHub Actions

9

Pruebas Unitarias con Mocks en GitHub Actions

10

Gestión de Permisos y Presupuestos en AWS para Nuevas Arquitecturas

Seguridad en la arquitectura

11

Integración de GitHub Webhooks y AWS para Gestión de Commits

12

Gestión de Infraestructura como Código con Terraform en AWS

13

Infraestructura como Código con Terraform y Makefiles

14

Automatización de Infraestructura con Terraform: Roles y Políticas en AWS

15

Implementación de buckets y funciones Lambda con Terraform y AWS S3

16

Configuración de Bases de Datos en AWS con VPC y Seguridad IP

17

Configuración de Lambdas en VPC usando Terraform

18

Configuración de API Gateway para Lambdas en AWS

Evitando vulnerabilidades en el código

19

Configuración de Autenticación con Auth0 en Aplicaciones Web

20

Implementación de Authorizer con Auth0 en AWS Lambda

21

Conexión y Configuración de Lambda con AWS y Postgres

22

Configuración de Endpoints y Políticas en AWS con Terraform

23

Validación de Webhooks desde GitHub usando User Agent

24

Validación de Webhooks de GitHub con AWS Secrets Manager

Controles de seguridad sobre datos

25

Seguridad de Datos y Certificados SSL en AWS

26

Protección de Datos en Reposo con AWS KMS

Monitoring y alertas

27

Creación de un Sistema de Logs en Go para Observabilidad

28

Monitoreo y Auditoría en AWS con CloudWatch y CloudTrail

29

Creación de Alertas en AWS CloudWatch

CORS y cierre

30

Manejo de CORS en Desarrollo Web Seguro

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Configuración de Webhooks y API REST con Go y ngrok

4/30
Recursos

¿Cómo configurar un sistema de seguimiento en Go con dependencia de Mux Router?

Iniciar tu proyecto en Go y configurar las dependencias adecuadas es fundamental para desarrollar aplicaciones robustas y escalables. Este contenido explicará cómo comenzar un proyecto de seguimiento en GitHub utilizando el lenguaje de programación Go y por qué es tan útil conocer las dependencias esenciales como Mux Router.

Vamos a crear una carpeta para almacenar nuestro código y, acto seguido, inicializaremos un archivo go.mod para gestionar las dependencias de manera eficiente. Estos pasos son vitales para configurar el entorno de trabajo en Go.

¿Cómo se inicializa y se configura el proyecto?

  1. Crear carpeta de proyecto: Inicia creando una carpeta llamada github-tracker.

    mkdir github-tracker
    cd github-tracker
    
  2. Inicializar go.mod: Ejecuta el siguiente comando para crear el archivo que gestionará tus dependencias.

    go mod init github-tracker
    
  3. Crear el archivo principal: Crea un archivo main.go donde centralizarás la lógica del proyecto. Importa el paquete principal y declara la función main.

  4. Configurar el router: Utiliza el Mux Router para gestionar tus rutas. Si aún no lo tienes, instálalo usando el sistema de dependencias de Go.

    go get -u github.com/gorilla/mux
    

¿Cómo crear un API REST en Go?

Para crear un API REST, declara las rutas y los controladores que se ejecutarán cuando lleguen las solicitudes. La implementación debe contemplar la gestión de los métodos HTTP, así como la producción y gestión de respuestas.

  1. Inicializar una ruta con Mux:

    import (
        "github.com/gorilla/mux"
    )
    
    func main() {
        router := mux.NewRouter()
        router.HandleFunc("/hello", postHandler).Methods("POST")
    }
    
  2. Implementar el controlador de la ruta:

    func postHandler(w http.ResponseWriter, r *http.Request) {
        ioutil.ReadAll(r.Body)
        defer r.Body.Close()
        fmt.Println("Received POST request")
    }
    
  3. Iniciar el servidor:

    http.ListenAndServe(":8080", router)
    

¿Cómo gestionar la seguridad y auditoría en GitHub?

Configura webhooks en GitHub para escuchar eventos específicos y gestionarlos localmente. Puedes utilizar herramientas como ngrok para exponer tu servidor local a la red externa de forma segura y temporal.

  1. Configurar ngrok:

    Después de registrar ngrok, inicia un túnel al puerto 8080 que exponga tu aplicación a internet.

    ngrok http 8080
    
  2. Registrar webhook en GitHub:

    Ingresa a la configuración de tu repositorio de GitHub, añade un nuevo webhook utilizando la URL proporcionada por ngrok. Configura para escuchar eventos de push.

  3. Validar entregas de webhook:

    Verifica en el apartado de entregas recientes de GitHub la correcta recepción y procesamiento del payload enviado por el webhook.

Con estas instrucciones habrás configurado un sistema básico de seguimiento en GitHub utilizando Go y Mux Router, además de recibir webhooks localmente con ngrok. Este tipo de configuraciones son esenciales para desarrollar aplicaciones que interactúen con plataformas externas de manera eficiente y segura. Anímate a seguir explorando y mejorando tus proyectos en Go.

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Es muy interesante que sea en Go
Muy interesante, aprender nuevas tecnologías.
eyyy para los nuevos posiblemente les instale en al versión 1.18 a mi me paso y el curso pide la 1.22 : sigan estos pasos 1. Desinstalar la extensión GO de **VS CODE WSL** 2. Recargar VS CODE 3. `sudo apt update` 4. `sudo apt upgrade` 5. `cd /` 6. `sudo rm -rf usr/local/go` 7. `cd ~` 8. `sudo rm -rf go` 9. `mkdir temp` 10. `cd temp` 11. `wget `[`https://go.dev/dl/go1.22.9.linux-amd64.tar.gz`](https://go.dev/dl/go1.22.9.linux-amd64.tar.gz) 12. `sudo tar -xvf go1.22.9.linux-amd64.tar.gz` 13. `sudo mv go /usr/local` 14. `export GOBIN=$GOPATH/bin` 15. `export GOROOT=/usr/local/go` 16. `export PATH=$PATH:$GOBIN:$GOROOT/bin` 17. `go version` si sigue con la versión 1.18 reinician y ya debería salir la 1.22.9 saludos!!!! pst llevo 3 horas y ya pude
En lugar de usar ngrok, ahora podemos hacer port forwarding y tener el mismo resultado build-in en vscode. Aquì les dejo la documentaciòn: https://code.visualstudio.com/docs/editor/port-forwarding
En el repo de GitHub vamos a **Settings**, luego a **Webhooks** -> **Add webhook**, donde pegamos la *URL* en **Payload URL**. En este caso en **Content type** corresponde **application/json**. En **SSL verification** seleccionar **Enable SSL verification**. En **Which events would you like to trigger this webhook?** seleccionamos **Just the push event**. Y tildamos **Active** para finalmente cliquear en **Add webhook**.
muy buena explicación, muchas gracias!
Perdonen compañeros... ¿Pero no me enterao de nada de esta clase? ¿Por qué usamos Go y no Node por ejemplo...? ¿Cuál es el propósito de esta lección? ¿Qué es un webhook? ¿Podemos usarlo con otra cosa que no sea github? Muchísimas gracias por vuestra amabilidad y paciencia!!
Rayiosss - Yo Nunka habiase visto un VSCode EN LIGHT, Cielos que mis Ojos Se Recinten , Yo soliase pensar que naide Usaba VisualStudioCode en Light y ahora veo alguien que si lo hace y me causa mucha impresion,\n ps todo el mundo lo usa en Dark.
Hola, porq falta indicaiones para run go...