
teler-waf est un middleware HTTP en Go qui protège les services web locaux contre les menaces du Top 10 OWASP, les vulnérabilités connues, les acteurs malveillants, les botnets, les crawlers indésirables et les attaques par force brute.
teler-waf est une solution de sécurité complète pour les applications web basées sur Go. Il agit comme un middleware HTTP, offrant une interface facile à utiliser pour intégrer les fonctionnalités de l'IDS avec teler IDS dans des applications Go existantes. En utilisant teler-waf, vous pouvez aider à vous protéger contre une variété d'attaques web, telles que le cross-site scripting (XSS) et l'injection SQL.
Le paquet est fourni avec un net/http.Handler standard, ce qui facilite son intégration dans le routage de votre application. Lorsqu'un client effectue une requête vers une route protégée par teler-waf, la requête est d'abord vérifiée par rapport à l'IDS teler pour détecter les modèles malveillants connus. Si aucun modèle malveillant n'est détecté, la requête est ensuite transmise pour un traitement ultérieur.
En plus de fournir une protection contre les attaques web, teler-waf peut également contribuer à améliorer la sécurité globale et l'intégrité de votre application. Il est hautement configurable, vous permettant de l'adapter aux besoins spécifiques de votre application.
Voir aussi :
teler-waf offre une gamme de fonctionnalités puissantes conçues pour renforcer la sécurité de vos applications web Go :
Dans l'ensemble, teler-waf fournit une solution de sécurité complète pour les applications web basées sur Go, aidant à se protéger contre les attaques web et à améliorer la sécurité globale et l'intégrité de votre application.
Dépendances :
Pour installer teler-waf dans votre application Go, exécutez la commande suivante pour télécharger et installer le paquet teler-waf :```console go get github.com/teler-sh/teler-waf
## Utilisation
> [!WARNING]
> **Avis de dépréciation** : Les exclusions de menace (`Excludes`) seront dépréciées dans la prochaine version (**v2**). Voir [#73](https://github.com/teler-sh/teler-waf/discussions/73) et [#64](https://github.com/teler-sh/teler-waf/issues/64).
Voici un exemple d'utilisation de teler-waf dans une application Go :
1. Importez le package teler-waf dans votre code Go :```go
import "github.com/teler-sh/teler-waf"
New pour créer une nouvelle instance du type Teler. Cette fonction accepte une variété de paramètres optionnels qui peuvent être utilisés pour configurer teler-waf afin de répondre aux besoins spécifiques de votre application.```go
waf := teler.New()3. Utilisez la méthode `Handler` de l'instance `Teler` pour créer un `net/http.Handler`. Ce handler peut ensuite être utilisé dans le routage HTTP de votre application pour appliquer les mesures de sécurité de teler-waf à des routes spécifiques.```go
handler := waf.Handler(http.HandlerFunc(yourHandlerFunc))
handler dans le routage HTTP de votre application pour appliquer les mesures de sécurité de teler-waf à des routes spécifiques.```go
http.Handle("/path", handler)C'est tout ! Vous avez configuré teler-waf dans votre application Go.
**Options :**
Pour une liste des options disponibles pour personnaliser teler-waf, voir la structure [`teler.Options`](https://pkg.go.dev/github.com/teler-sh/teler-waf#Options).
### Exemples
Voici un exemple de la façon de personnaliser les options et les règles pour teler-waf :```go
// main.go
package main
import (
"net/http"
"github.com/teler-sh/teler-waf"
"github.com/teler-sh/teler-waf/request"
"github.com/teler-sh/teler-waf/threat"
)
var myHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// This is the handler function for the route that we want to protect
// with teler-waf's security measures.
w.Write([]byte("hello world"))
})
var rejectHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// This is the handler function for the route that we want to be rejected
// if the teler-waf's security measures are triggered.
http.Error(w, "Sorry, your request has been denied for security reasons.", http.StatusForbidden)
})