init commit

This commit is contained in:
2026-05-10 08:41:16 +03:00
commit c1ef5871c2
32 changed files with 3662 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import re
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
from starlette.responses import Response
from .config import settings
_PROBE_PATH_RE = re.compile(
r"""(?ix)
\.(?:php|phtml|phar|sh|sql|bak|old|orig|swp|zip|tar|gz)(?:\?|$|/)|
/\.(?:env|git|svn|hg|bzr|htpasswd|htaccess)(?:/|$)|
(?:^|/)\.env(?:\.|\?|$|/)|
[^/]+\.env(?:\?|$|/)|
(?:^|/)(?:wp-admin|wp-includes|wp-content|wp-login\.php|xmlrpc\.php)(?:/|$)|
(?:^|/)(?:phpmyadmin|pma|adminer|vendor/phpunit)(?:/|$)|
(?:^|/)cgi-bin(?:/|$)|
(?:^|/)(?:wlwmanifest\.xml|readme\.html|license\.txt)(?:/|$)
"""
)
def suspicious_request_path(path: str) -> bool:
return bool(_PROBE_PATH_RE.search(path))
class ProbeBlockMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
if not settings.block_probe_paths:
return await call_next(request)
p = request.url.path
if p.startswith('/static/'):
return await call_next(request)
if suspicious_request_path(p):
return Response(status_code=404, content=b'Not Found', media_type='text/plain')
return await call_next(request)