رفع الملفات إلى "superrecontool04aj"
هذا الالتزام موجود في:
1
superrecontool04aj/COMMIT_EDITMSG
Normal file
1
superrecontool04aj/COMMIT_EDITMSG
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Initial commit: إضافة جميع ملفات مشروع SuperRecon
|
123
superrecontool04aj/Dockerfile
Normal file
123
superrecontool04aj/Dockerfile
Normal file
@@ -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
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
|
1
superrecontool04aj/description
Normal file
1
superrecontool04aj/description
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Unnamed repository; edit this file 'description' to name the repository.
|
30
superrecontool04aj/requirements.txt
Normal file
30
superrecontool04aj/requirements.txt
Normal file
@@ -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
|
المرجع في مشكلة جديدة
حظر مستخدم