Skip to main content

Simple security middleware for FastAPI

Project description

Simple Security for FastAPI

Este projeto fornece um middleware de segurança de facíl condiguração para FastAPI, permitindo a detecção e mitigação de ataques de injeção (SQL, XSS, NoSQL) e a adição de cabeçalhos de segurança às respostas.

Instalação

Instale a biblioteca via pip:

pip install fastapi-SimpleSecurity

Configuração

Arquivo de Configuração

Edite o arquivo config.yaml na pasta app/config/ para definir as regras de injeção, exclusões e limitação de taxa. Exemplo:

rules:
  injection:
    enabled: true
    sql:
      enabled: true
      patterns:
        - "(?i)\\b(select|insert|update|delete|drop|truncate|alter|exec|execute|declare|union|join)\\b|'--|--[\\s]*$|';[\\s]*$|\"\\s*;|/\\*.*\\*/|--[^-]*-|' OR ''='|' OR '1'='1|' OR 1=1|--|/\\*|\\*/|;|@@|char\\(|nchar\\(|varchar\\(|nvarchar\\(|alter\\(|begin\\(|cast\\(|create\\(|cursor\\(|declare\\(|delete\\(|drop\\(|end\\(|exec\\(|execute\\(|fetch\\(|insert\\(|kill\\(|open\\(|select\\(|sys\\(|sysobjects\\(|syscolumns\\(|table\\(|update\\("
        - '(?i)(\\b(SELECT|INSERT|UPDATE|DELETE|DROP|TRUNCATE|ALTER|EXEC|EXECUTE|DECLARE|UNION|JOIN)\\b|--;|'';|-- |\\x27|\\x22)'
    xss:
      enabled: true
      patterns:
        - "<script[^>]*?>.*?</script>"
        - "<iframe[^>]*?>.*?</iframe>"
        - "<object[^>]*?>.*?</object>"
        - "(?i)javascript:"
        - "(?i)\\bon\\w+=.*"
        - "(?i)<img[^>]+src[^>]+onerror=.*"
        - "(?i)<a[^>]+href[^>]+javascript:.*"
        - "(?i)\\bstyle=.*expression\\(.*"
        - "(?i)\\bstyle=.*url\\(.*"
        - "(?i)\\bstyle=.*import\\(.*"
        - "(?i)\\b@import\\b"
    nosql:
      enabled: true
      patterns:
        - "\\{\\$ne\\}"
        - "\\{\\$gt\\}"
        - "\\{\\$lt\\}"
        - "\\{\\$exists\\}"
        - "\\{\\$regex\\}"
        - "\\{\\$where\\}"
        - "\\{\\$all\\}"
        - "\\{\\$elemMatch\\}"

exclusions:
  - "/excluded-route"

rate_limiting:
  enabled: true
  requests: 100
  per_minute: 1

Inicialização do Middleware

Para usar o middleware de segurança em sua aplicação FastAPI, configure e adicione o middleware usando a classe WAFMiddleware:

from fastapi import FastAPI
from simple_security.middleware import WAFMiddleware

app = FastAPI()

waf_middleware = WAFMiddleware(app, config_file_path="app/config/settings.yaml")

@app.get("/")
async def root():
    return {"message": "Hello, World!"}

Funcionalidades

Filtros de Injeção

O middleware verifica padrões de injeção em solicitações para detectar e prevenir ataques de injeção SQL, XSS e NoSQL.

  • SQL Injection: Detecta padrões comuns de injeção SQL.
  • XSS (Cross-Site Scripting): Detecta scripts maliciosos embutidos em solicitações.
  • NoSQL Injection: Detecta padrões de injeção NoSQL.

Cabeçalhos de Segurança

O middleware adiciona cabeçalhos de segurança às respostas para proteger contra várias ameaças.

  • X-Frame-Options
  • Cache-Control
  • Clear-Site-Data
  • Content-Security-Policy
  • Cross-Origin-Embedder-Policy
  • Cross-Origin-Opener-Policy
  • Cross-Origin-Resource-Policy
  • Referrer-Policy
  • Strict-Transport-Security
  • X-Content-Type-Options
  • X-DNS-Prefetch-Control
  • X-Download-Options
  • X-Permitted-Cross-Domain-Policies
  • X-XSS-Protection

Exclusões

Você pode especificar caminhos a serem excluídos das verificações de segurança no arquivo de configuração.

Limitação de Taxa

O middleware suporta limitação de taxa, permitindo definir o número de solicitações permitidas por minuto.

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_security_middleware-0.1.3.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file fastapi_security_middleware-0.1.3.tar.gz.

File metadata

File hashes

Hashes for fastapi_security_middleware-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5aebf5acf795c8cab0a706138624497b40bc7f6d3231c9e6f58714475de89601
MD5 2dbb16bc7fe9fed519ab313df83849ad
BLAKE2b-256 8a27b83088979f74ab28f72ec3affaa4f38f937fc932d8db1d7d43a3e797bf41

See more details on using hashes here.

File details

Details for the file fastapi_security_middleware-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_security_middleware-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cef2fb95ccafed2269ef71d97259f13fb12604357795f025306bb0e6c27f3747
MD5 c52ef8c2d1be6a0dc02351bd983d3fec
BLAKE2b-256 d216ee34c77986c93dccbf4dc63f9404dcc73e9c1c0b955dfc92ec36b661d978

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page