رفع الملفات إلى "superrecontool04aj"

هذا الالتزام موجود في:
2025-09-06 23:57:01 +00:00
التزام 7cc6581374
5 ملفات معدلة مع 168 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1 @@
Initial commit: إضافة جميع ملفات مشروع SuperRecon

عرض الملف

@@ -0,0 +1,123 @@
# Official Playwright image (includes browsers)
FROM mcr.microsoft.com/playwright/python:v1.44.0
# Build-time arg: اجعلها 1 لفشل البناء إذا وُجدت أي استخدامات pkg_resources في site-packages
ARG FAIL_ON_PKG_RESOURCES=0
ENV FAIL_ON_PKG_RESOURCES=${FAIL_ON_PKG_RESOURCES}
# Non-interactive apt
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /app
# Copy requirements first to leverage Docker cache
COPY requirements.txt .
# Install useful system packages
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git \
build-essential \
libxml2-dev \
libxslt1-dev \
libssl-dev \
libffi-dev \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
# Upgrade pip/setuptools/wheel to latest (we aim to support setuptools >= 81 after code migration)
RUN python -m pip install --upgrade pip setuptools wheel
# Install runtime Python deps from requirements
RUN pip install --no-cache-dir -r requirements.txt
# Install auxiliary packages / backports & tooling we rely on
# - packaging: requirement parsing & version handling
# - importlib_metadata / importlib_resources: backports if running on older Python
# - wafw00f: WAF detection tool used by the project
RUN pip install --no-cache-dir \
packaging \
importlib_metadata \
importlib_resources \
wafw00f
# Copy the rest of the project files
COPY . .
# Create evidence directory in tmpfs location and set permissions (used by utils.store_raw_evidence)
ENV SUPERR_EVIDENCE_DIR=/dev/shm/superrecon_evidence
RUN mkdir -p ${SUPERR_EVIDENCE_DIR} \
&& chown -R pwuser:pwuser ${SUPERR_EVIDENCE_DIR} \
&& chmod 750 ${SUPERR_EVIDENCE_DIR} || true
# Optional build-time check: look for any remaining 'import pkg_resources' usages
# If FAIL_ON_PKG_RESOURCES=1 the build will fail when any occurrences are found.
# This check scans site-packages for python files mentioning pkg_resources.
RUN python - <<'PY' || (test "$FAIL_ON_PKG_RESOURCES" = "0" && exit 0)
import os, sys, site
from pathlib import Path
def scan_paths(paths):
hits = []
for root in paths:
rootp = Path(root)
if not rootp.exists():
continue
for p in rootp.rglob("*.py"):
try:
txt = p.read_text(encoding="utf-8", errors="ignore")
except Exception:
continue
if "import pkg_resources" in txt or "pkg_resources." in txt:
hits.append(str(p))
return hits
paths = []
try:
sp = site.getsitepackages()
for p in sp:
paths.append(p)
except Exception:
# fallback common locations
paths += [
"/usr/local/lib/python3.10/site-packages",
"/usr/lib/python3/dist-packages",
"/usr/local/lib/python3.9/site-packages",
]
hits = scan_paths(paths)
if hits:
print("==========================================")
print("WARNING: Detected uses of pkg_resources in installed packages (first 200 shown):")
for h in hits[:200]:
print(" -", h)
print("==========================================")
# If FAIL_ON_PKG_RESOURCES is set, fail the build
if os.environ.get("FAIL_ON_PKG_RESOURCES", "0") == "1":
print("FAIL_ON_PKG_RESOURCES=1 -> Failing build due to pkg_resources usages.")
sys.exit(1)
else:
print("No pkg_resources usages found in scanned site-packages paths.")
PY
# Ensure non-root runtime (pwuser exists in Playwright base image)
USER pwuser
# Expose application port (configurable via APP_PORT env)
ENV APP_PORT=8000
EXPOSE ${APP_PORT}
# Healthcheck
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
CMD curl -f http://127.0.0.1:${APP_PORT}/health || exit 1
# Default environment variables (can be overridden at runtime)
ENV PYTHONUNBUFFERED=1
ENV MAX_CONCURRENT_SCANS=8
ENV SCAN_TIMEOUT=180
ENV RATE_LIMIT="15/minute"
ENV LOG_LEVEL=INFO
ENV UVICORN_WORKERS=1
# Default command: run Uvicorn (assumes app package path app.main:app)
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]

13
superrecontool04aj/config Normal file
عرض الملف

@@ -0,0 +1,13 @@
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/abdulazizabuali/SuperRecon.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main

عرض الملف

@@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

عرض الملف

@@ -0,0 +1,30 @@
aiohttp
apify-client
beautifulsoup4
builtwith
certifi
charset-normalizer
cryptography
dnspython
fake-useragent
fastapi[all]
httpx[http2]
importlib_metadata; python_version < "3.10"
importlib_resources; python_version < "3.9"
ipwhois
js2py
lxml
packaging
playwright
pyOpenSSL
python-Wappalyzer
python-dotenv
python-socks
python-whois
redis
requests
slowapi
tenacity
tldextract
uvicorn[standard]
wafw00f