Skip to main content

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.

Release files for fastapi-security-middleware 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-security-middleware 0.1.3
File Size Uploaded
fastapi_security_middleware-0.1.3.tar.gz 15.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-security-middleware 0.1.3
File Interpreter ABI Platform
fastapi_security_middleware-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 27.3 kB

Release files / fastapi_security_middleware-0.1.3.tar.gz

Download URL fastapi_security_middleware-0.1.3.tar.gz
Size 15.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5aebf5acf795c8cab0a706138624497b40bc7f6d3231c9e6f58714475de89601
BLAKE2b-256 checksum
How to use checksums
8a27b83088979f74ab28f72ec3affaa4f38f937fc932d8db1d7d43a3e797bf41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / fastapi_security_middleware-0.1.3-py3-none-any.whl

Download URL fastapi_security_middleware-0.1.3-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cef2fb95ccafed2269ef71d97259f13fb12604357795f025306bb0e6c27f3747
BLAKE2b-256 checksum
How to use checksums
d216ee34c77986c93dccbf4dc63f9404dcc73e9c1c0b955dfc92ec36b661d978
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page