Signed payment links, hashed refresh tokens, login-only leaderboard, load test tools
- /api/payment/orders/{id}/pay requires the short-lived signature that paymentUrl carries;
without it (or with another order's) it is the same 404 as an unknown order
- Session.refresh_token stores the SHA-256 of the token; migration accounts.0007 hashes the
existing rows so tokens clients already hold keep working
- /api/leaderboard requires a token (guests have one); names of children were scrapable
- RAG mock only for `manage.py test`, not any command with an argument named "test"
- tools/loadtest: user factory, load generator, fake GapGPT+Qdrant, with method notes
- security-before-production.md lists only open items; closed ones become a guards table
with the tests that hold them. Comments describe current behaviour, not history
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
11
deploy.sh
11
deploy.sh
@@ -172,12 +172,11 @@ if 'LocMem' in settings.CACHES['default']['BACKEND'] and not settings.DEBUG:
|
||||
PYCHECK
|
||||
|
||||
# ─── ۳.۶ مجوزِ فایلهای داده ───────────────────────────────────────────────
|
||||
# این ماشین بینِ چند تیم مشترک است. تا ۲۰۲۶-۱۰-۰۴ دیتابیس و همهی بکاپها 0644 بودند و
|
||||
# پوشهها قابلِ پیمایش؛ کاربرِ nobody روی سرور توانست سرِ db.sqlite3 و یک بکاپ را بخواند
|
||||
# (شمارهها، refresh tokenهای بیهش، گفتگوها). در هر انتشار دوباره بسته میشود، چون بکاپِ
|
||||
# دستیِ تازه دوباره با umaskِ پیشفرض (0644) ساخته میشود. nginx فقط به سوکتِ /run وصل
|
||||
# میشود و از این پوشه چیزی نمیخواند (sites-enabled/mathapp، همان روز خوانده شد)؛ اگر
|
||||
# سرویسِ دیگری این دیتابیس را مستقیم میخواند، از این به بعد خطای دسترسی میگیرد.
|
||||
# این ماشین بینِ چند تیم مشترک است و دیتابیس شمارهها و گفتگوهای کاربران را دارد؛ پس پوشهی
|
||||
# پروژه برای others بسته، دیتابیس 600 و بکاپها 700/600. در هر انتشار دوباره اعمال میشود، چون
|
||||
# بکاپِ دستیِ تازه با umaskِ پیشفرض (0644) ساخته میشود. nginx فقط به سوکتِ /run وصل میشود و
|
||||
# از این پوشه چیزی نمیخواند (sites-enabled/mathapp)؛ سرویسی که این دیتابیس را مستقیم بخواند
|
||||
# خطای دسترسی میگیرد.
|
||||
step "مجوزِ فایلهای داده"
|
||||
chmod o-rwx . || warn "مجوزِ پوشهی پروژه عوض نشد."
|
||||
for f in db.sqlite3 db.sqlite3-wal db.sqlite3-shm db.sqlite3-journal; do
|
||||
|
||||
Reference in New Issue
Block a user