
teler-waf é um middleware HTTP em Go que protege serviços web locais contra ameaças do OWASP Top 10, vulnerabilidades conhecidas, atores maliciosos, botnets, rastreadores indesejados e ataques de força bruta.
teler-waf é uma solução de segurança abrangente para aplicações web baseadas em Go. Atua como um middleware HTTP, fornecendo uma interface fácil de usar para integrar funcionalidades de IDS com teler IDS em aplicações Go existentes. Ao usar teler-waf, você pode ajudar a proteger contra uma variedade de ataques baseados na web, como cross-site scripting (XSS) e injeção de SQL.
O pacote vem com um net/http.Handler padrão, facilitando a integração no roteamento da sua aplicação. Quando um cliente faz uma requisição a uma rota protegida por teler-waf, a requisição é primeiro verificada contra o teler IDS para detectar padrões maliciosos conhecidos. Se nenhum padrão malicioso for detectado, a requisição é então passada adiante para processamento adicional.
Além de fornecer proteção contra ataques baseados na web, o teler-waf também pode ajudar a melhorar a segurança e integridade geral da sua aplicação. É altamente configurável, permitindo que você o adapte para atender às necessidades específicas da sua aplicação.
Veja também:
teler-waf oferece uma gama de funcionalidades poderosas projetadas para melhorar a segurança das suas aplicações web Go:
No geral, teler-waf fornece uma solução de segurança abrangente para aplicações web baseadas em Go, ajudando a proteger contra ataques baseados na web e melhorar a segurança e integridade geral da sua aplicação.
Dependências:
Para instalar o teler-waf na sua aplicação Go, execute o seguinte comando para baixar e instalar o pacote teler-waf:```console go get github.com/teler-sh/teler-waf
## Uso
> [!WARNING]
> **Aviso de descontinuação**: As exclusões de ameaças (`Excludes`) serão descontinuadas na próxima versão (**v2**). Veja [#73](https://github.com/teler-sh/teler-waf/discussions/73) & [#64](https://github.com/teler-sh/teler-waf/issues/64).
Aqui está um exemplo de como usar o teler-waf em uma aplicação Go:
1. Importe o pacote teler-waf no seu código Go:```go
import "github.com/teler-sh/teler-waf"
New para criar uma nova instância do tipo Teler. Esta função aceita uma variedade de parâmetros opcionais que podem ser usados para configurar o teler-waf de acordo com as necessidades específicas da sua aplicação.```go
waf := teler.New()3. Use o método `Handler` da instância `Teler` para criar um `net/http.Handler`. Este handler pode então ser usado no roteamento HTTP da sua aplicação para aplicar as medidas de segurança do teler-waf a rotas específicas.```go
handler := waf.Handler(http.HandlerFunc(yourHandlerFunc))
handler no roteamento HTTP da sua aplicação para aplicar as medidas de segurança do teler-waf a rotas específicas.```go
http.Handle("/path", handler)Isso é tudo! Você configurou o teler-waf em sua aplicação Go.
**Opções:**
Para uma lista das opções disponíveis para personalizar o teler-waf, veja a estrutura [`teler.Options`](https://pkg.go.dev/github.com/teler-sh/teler-waf#Options).
### Exemplos
Aqui está um exemplo de como personalizar as opções e regras para o 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)
})