Discuvr اسکن امنیتی

اداری و داده

CSV به Excel CSV را بچسبانید و فوراً آن را به شکل صفحه‌گسترده ببینید، با اعداد، تاریخ‌ها و شناسه‌ها در همان نوعی که Excel باید نگه دارد. فایل .xlsx تمیز را فقط هر وقت خواستید دانلود کنید. امضای PDF یک PDF را در مرورگر امضا کنید - امضا را بکشید، تایپ یا بارگذاری کنید، روی هر صفحه قرار دهید، تاریخ را اضافه کنید و نسخه امضاشده را دانلود کنید. فایل هرگز از دستگاه شما خارج نمی‌شود. حذف اطلاعات اطلاعات را برای همیشه از فایل‌های PDF، Word، Excel، PowerPoint، متنی و تصویری حذف کنید. موارد یافت‌شده و کادرها از خود فایل پاک می‌شوند، نه اینکه پوشانده شوند، و نتیجه پیش از دانلود دوباره بررسی می‌شود. IP من چیست آدرس IP عمومی‌ای را که وب‌سایت‌ها هنگام اتصال می‌بینند ببینید، اینکه اشتراکی (CGNAT) است یا خصوصی، و مرورگرتان دیگر چه چیزی را آشکار می‌کند. مبدل حالت حروف و ابزارهای خط متن را به حروف بزرگ، کوچک، حالت عنوان یا جمله تبدیل کنید، نام‌ها را به camelCase یا snake_case ببرید و خطوط تکراری را حذف یا فهرست را مرتب کنید. مقایسه متن دو نسخه از یک متن را جای‌گذاری کنید تا هر خط افزوده، حذف‌شده و تغییریافته را با کلمات تغییریافته برجسته ببینید.

نوشتن و پیشنهادها

ویرایش لحن بازقالب‌بندی نوشته شما با دستور زبان، ساختار و بیان مناسب - با لحن خودتان. یک جای‌گذاری، یک پاسخ، بدون جلسه چت. مولد پروپوزال فریلنسری مشکل مشتری را توصیف کنید و در چند ثانیه یک پروپوزال فریلنسری با محدوده، قیمت‌گذاری و آماده ارسال دریافت کنید.

حقوقی و انطباق

چت‌بات پرسش و پاسخ قوانین IP درباره قانون مالکیت فکری هند بپرسید - علامت تجاری، اختراع، حق نشر، طرح صنعتی و بیشتر، همراه با نتایج جستجوی وب استفاده‌شده بالای هر پاسخ. مولد پاسخ به FER ثبت اختراع اعتراض‌های گزارش اولین بررسی (FER) را بچسبانید تا پاسخی ساختاریافته پیش‌نویس شود، یا پیش‌نویسی را برای بررسی ریسک مالکیت فکری بارگذاری کنید. ابزار بررسی واجد شرایط بودن برای طرح‌های دولتی یک بار به مجموعه‌ای کوتاه از پرسش‌ها پاسخ دهید. وارد حساب خود شوید تا پاسخ‌هایتان را ذخیره کنیم، تا بتوانید بدون تایپ دوباره، طرح‌های دولت مرکزی که ممکن است واجد شرایط آن‌ها باشید را بررسی کنید.

حریم خصوصی و امنیت

اسکن امنیت وب‌سایت اسکن یک دامنه برای نقاط ضعف امنیتی واقعی و قابل بازتولید. هر یافته شامل مشاهده پشت آن و دستور تأیید آن توسط خودتان است. پاکسازی تصویر ببینید عکس شما دقیقاً چه اطلاعاتی از شما را فاش می‌کند - GPS، شماره سریال دوربین، نام شما - سپس آن را پاک کنید. برش، تغییر اندازه، تار کردن چهره‌ها و تبدیل، همگی بدون ذخیره تصویر در هیچ کجا.

ابزارهای برنامه‌نویسان

فرمت‌کننده JSON زیباسازی، فشرده‌سازی و اعتبارسنجی JSON تنها با یک جای‌گذاری - همراه با خط و ستون دقیق در صورت عدم تجزیه، و شمارش دقیق آنچه در سند وجود دارد. قالب‌بندی‌کننده Python بازقالب‌بندی Python به روش Black، با طول خط و مدیریت نقل‌قول انتخابی شما - و شمارش دقیق تعداد خطوط تغییر یافته. نمایش‌دهنده HTML کد HTML را جای‌گذاری کنید و رندر زنده آن را در یک سندباکس، در عرض تلفن، تبلت یا دسکتاپ ببینید - همراه با زیباسازی، فشرده‌سازی، کنسول برای اسکریپت‌ها و گزارشی از اشکالات ساختاری. ماشین‌حساب زیرشبکه IP نماد CIDR یا یک IP همراه با ماسک شبکه را وارد کنید و بلافاصله آدرس شبکه، آدرس پخش، محدوده میزبان‌های قابل استفاده و تعداد کل آدرس‌ها را دریافت کنید. رمزگذاری / رمزگشایی Base64، Base64URL، رمزگذاری درصدی URL، موجودیت‌های HTML و هگز را هنگام تایپ رمزگذاری یا رمزگشایی کنید، با پشتیبانی کامل از UTF-8. مبدل مهر زمانی Unix مهر زمانی Unix را بر حسب ثانیه، میلی‌ثانیه، میکروثانیه یا نانوثانیه به تاریخ به وقت UTC یا یکی از مناطق زمانی اصلی جهان تبدیل کنید، و تاریخ را به مهر زمانی برگردانید. سازنده نمودار سیستم پیکان هایی مثل User -> API -> Database بنویسید و نمودار معماری یا جریانِ چیده شده بگیرید. برای نمای کلی گروه ها را جمع کنید و برای جریان دقیق مراحل را شماره گذاری کنید.

میز کار هوش مصنوعی

محیط آزمایشی هوش مصنوعی مقایسه همزمان و کنار هم پاسخ‌های چندین ارائه‌دهنده LLM. کلیدهای API خودتان را وارد کنید. محیط آزمایشی عامل آزمایش با عوامل هوش مصنوعی که از ابزارها استفاده می‌کنند - جستجوی وب، ماشین حساب، فراخوانی URL - در میان چندین ارائه‌دهنده.

یادگیری

Study Buddy یک مربی آماده‌سازی برای مصاحبه شغلی در برترین مشاغل فناوری، از اولین روز مطالعه تا پذیرش پیشنهاد: برنامه‌ای شامل DSA، LLD، طراحی سیستم، رفتارشناسی و برنامه‌نویسی با کمک هوش مصنوعی، مصاحبه‌های آزمایشی، بررسی رزومه، ردیاب درخواست‌ها و مقایسه پیشنهادها.

کمک‌های روزمره

تولیدکننده کد QR کدهای QR را از متن، URL، اطلاعات WiFi یا اطلاعات تماس بسازید - به صورت تصویر PNG یا وکتور SVG، با سطح تصحیح خطایی که انتخاب می‌کنید. مبدل واحد تبدیل آنی بین واحدهای طول، وزن، دما، حجم، سرعت، مساحت و انرژی - بیش از ۴۰ نوع واحد با نتایج فوری. تولیدکننده رمز عبور یک رمز عبور تصادفی با تصادفی‌بودن ایمن از نظر رمزنگاری تولید کنید، طول و انواع نویسه‌های آن را تنظیم کنید و قدرت آن را بر حسب بیت آنتروپی ببینید. شمارشگر کلمات و تحلیل‌گر خوانایی کلمات، نویسه‌ها، جمله‌ها و پاراگراف‌ها را می‌شمارد، زمان مطالعه را تخمین می‌زند و خوانایی را امتیاز می‌دهد - با شمارش واقعی بر اساس نویسه برای متن چینی، ژاپنی، کره‌ای و تایلندی. محاسبه‌گر سن و اختلاف تاریخ سن دقیق فردی را بیابید یا اختلاف دقیق بین هر دو تاریخ را بسنجید، به سال، ماه و روز، به علاوه مجموع تعداد روزها و هفته‌ها. محاسبه‌گر فاصله تاریخ روزها، هفته‌ها، ماه‌ها و روزهای کاری بین دو تاریخ را بشمارید، یا به یک تاریخ روز اضافه یا از آن کم کنید. محاسبه‌گر درصد محاسبه X درصد از Y، اینکه یک عدد چند درصد از عدد دیگر است، افزایش یا کاهش درصدی بین دو عدد، یا درصد معکوس - چهار محاسبه رایج در یک ابزار. ماشین حساب SIP ببینید سرمایه گذاری ماهانه با افزایش سالانه، مبلغ اولیه و تورم به کجا می رسد، یا مبلغ ماهانه لازم برای یک هدف را پیدا کنید. محاسبه‌گر BMI شاخص توده بدنی (BMI) خود را از روی قد و وزن، با واحدهای متریک یا امپریال محاسبه کنید، طبقه‌بندی‌شده بر اساس دسته‌های سازمان جهانی بهداشت برای بزرگسالان: کمبود وزن، طبیعی، اضافه‌وزن، چاقی.
ورود شروع کنید
همه ابزارهاحریم خصوصی و امنیت

اسکن امنیت وب‌سایت

یک اسکن بیرونی غیرفعال. هر یافته شامل مشاهده خامی است که اسکنر انجام داده و دستوری که خودتان می‌توانید برای بازتولید آن اجرا کنید - هیچ چیز در اینجا توسط مدل نوشته نشده است.

14 گروه‌های بررسی: تحلیل DNS و بررسی رکورد CAA · بررسی SPF و DMARC · بررسی گواهی TLS و نسخه‌های پروتکل · آزمایش هدایت از HTTP به HTTPS · خواندن هدرهای امنیتی پاسخ · بررسی ویژگی‌های کوکی · بررسی سیاست CORS · جست‌وجوی بنرهای نسخه · بررسی روش‌های مجاز HTTP · اسکن صفحه اصلی برای محتوای مختلط و فرم‌های ناامن · جست‌وجوی فایل‌های پیکربندی و کنترل نسخه افشا شده · بررسی فهرست‌گیری از دایرکتوری‌ها · خواندن robots.txt و security.txt · بررسی پورت‌های سرویس افشا شده

درباره اسکن امنیت وب‌سایت

بسیاری از اسکنرها یک نمره حرفی و فهرستی از واژه‌های ترسناک به شما می‌دهند. این یکی هم نمره می‌دهد، اما هر امتیازی که کم می‌کند به یافته‌ای وابسته است که پاسخ واقعی دریافت‌شده و فرمان یک‌خطی‌ای را نشان می‌دهد که همان پاسخ را به شما برمی‌گرداند؛ پس یافته چیزی است که می‌توانید تأیید کنید، نه چیزی که باید باور کنید.

عملکرد

  • DNS و CAA، SPF و DMARC، گواهی TLS و TLS 1.0/1.1، تغییر مسیر به HTTPS، سرآیندهای امنیتی، ویژگی‌های کوکی، CORS، بنرهای نسخه، روش‌های HTTP، محتوای مختلط، ۲۳ مسیر حساس، فهرست پوشه‌ها، robots.txt، security.txt و ۱۲ درگاه سرویس را بررسی می‌کند.
  • هر یافته مشاهده خام و یک دستور شل برای بازتولید آن را همراه دارد.
  • بررسی‌هایی که اجرا نشدند به‌عنوان "بررسی نشده" گزارش می‌شوند - هرگز به‌طور خاموش به‌عنوان قبول‌شده.
  • گزارش‌ها به‌صورت Markdown یا JSON قابل دانلود هستند.

نحوه کار

  1. 1 دامنه‌ای را که مسئول آن هستید وارد کنید.
  2. 2 اسکن آزمایش‌های غیرفعال اجرا می‌کند - درخواست‌های معمولی، بدون بهره‌برداری.
  3. 3 یافته‌ها را، هر یک با شواهدش، بخوانید و آن‌هایی که اهمیت دارند را تأیید کنید.

هیچ یافته‌ای ساختگی نیست

اسکنر هیچ مدل زبانی ندارد. شدت، اثر و راه رفع برای هر بررسی ثابت است و هر یافته از یک مشاهده واقعی ساخته می‌شود. گزارش روی صفحه و فایل‌های Markdown و JSON از همان یافته‌ها ساخته می‌شوند و هیچ مدلی در کار نیست.

نمره چطور حساب می‌شود

امتیاز از ۱۰۰ شروع می‌شود و برای هر یافته بحرانی ۳۴، هر یافته بالا ۱۳، هر یافته متوسط ۵ و هر یافته پایین ۱٫۵ امتیاز کم می‌شود و مجموع هر سطح سقف دارد (بالا ۴۵، متوسط ۲۲، پایین ۹). نتیجه‌های اطلاعاتی و قبول‌شده چیزی کم نمی‌کنند. ۹۰ و بالاتر A، از ۷۵ B، از ۶۰ C، از ۴۰ D و پایین‌تر F است. یک فایل .env در معرض دید یا یک درگاه پایگاه داده در دسترس، سایتی بی‌نقص را از ۱۰۰ به ۶۶ یعنی C می‌رساند؛ دو یافته از این نوع ۳۲ یعنی F می‌دهد.

پرهیز از هشدار نادرست

اسکنر پیش از آزمودن مسیرهایی مانند /.git/HEAD یا /backup.sql، یک نشانی تصادفی را که نمی‌تواند وجود داشته باشد درخواست می‌کند و پاسخ سایت را ثبت می‌کند. مسیری فقط وقتی در معرض دید گزارش می‌شود که HTTP 200 برگرداند، با آن پاسخ مرجع «یافت نشد» فرق داشته باشد و با امضای خود فایل جور باشد؛ پس سایتی که به هر نشانی با صفحه اصلی‌اش پاسخ می‌دهد، پر از یافته بحرانی نمی‌شود.

یک گزارش پاک، گواهی‌نامه نیست

این‌ها بررسی‌های غیرفعال در برابر یک سایت در حال اجرا هستند. منطق برنامه، احراز هویت، کنترل دسترسی یا هر چیز پس از ورود را پوشش نمی‌دهند - جاهایی که نقض‌های واقعی معمولاً از آن‌ها شروع می‌شوند. بررسی‌هایی که نتوانستند کامل شوند دقیقاً به همین دلیل به‌عنوان بررسی‌نشده فهرست می‌شوند: قبولی ناشی از یک اتصال ناموفق یک آرامش کاذب است، و اسکن بدون یافته به این معناست که چیزی پیدا نشده، نه اینکه چیزی وجود ندارد.

فقط آنچه از خودتان است را اسکن کنید

دامنه‌هایی را اسکن کنید که مالک آن‌ها هستید یا اجازه کتبی برای آزمایش آن‌ها دارید. این ابزار میزبان‌هایی را که به آدرس‌های خصوصی یا داخلی حل می‌شوند رد می‌کند و برای هر IP محدودیت نرخ دارد، اما مجوز همچنان مسئولیت شماست.

سوالات

آیا این یک حمله فعال است؟

نه. درخواست‌های معمولی GET، HEAD و OPTIONS، دست‌دهی‌های TLS (از جمله تلاش با TLS 1.0 و 1.1)، پرس‌وجوهای DNS از طریق DNS-over-HTTPS از Cloudflare و اتصال‌های ساده TCP به ۱۲ درگاه انجام می‌دهد. از هیچ چیز سوءاستفاده نمی‌شود، هیچ فرمی ارسال نمی‌شود و چیزی تغییر نمی‌کند.

آیا می‌توانم هر وب‌سایتی را اسکن کنم؟

فقط سایت‌هایی که مالک آن‌ها هستید یا برای آزمایش آن‌ها مجاز هستید. اسکن کردن زیرساخت شخص ثالث بدون اجازه ممکن است در محل شما غیرقانونی باشد.

چرا یک بررسی می‌گوید "بررسی نشده"؟

زیرا نتوانست کامل شود - معمولاً چون چیزی از آن مبدأ پاسخ نداد. این به‌صورت صادقانه گزارش می‌شود، نه ثبت‌شده به‌عنوان قبولی.

آیا می‌توانم گزارش را صادر کنم؟

بله، به صورت Markdown یا JSON و به مدت یک ساعت: گزارش در این مدت در حافظه نهان سرور می‌ماند تا دانلودها کار کنند و سپس منقضی می‌شود. هیچ خروجی‌ای از مدل استفاده نمی‌کند. در سابقه استفاده تعداد یافته‌ها و نمره ثبت می‌شود، نه نام دامنه.

کدام فایل‌ها و پورت‌ها را بررسی می‌کند؟

فایل‌ها: ۲۳ مسیر ثابت، از جمله /.git/HEAD, /.git/config, /.env, /.env.local, /.env.production, /.aws/credentials, /id_rsa, /backup.zip, /backup.sql, /dump.sql, /wp-config.php.bak, /phpinfo.php, /server-status, /actuator/env؛ هر کدام فقط وقتی گزارش می‌شود که پاسخ با امضای خاص همان فایل بخواند. اگر /.well-known/security.txt منتشر شده باشد به نفع شما حساب می‌شود. پورت‌ها: یک اتصال سادهٔ TCP، هرگز تلاش برای ورود، به 21 FTP, 23 Telnet, 25 SMTP, 3306 MySQL, 5432 PostgreSQL, 6379 Redis, 27017 MongoDB, 9200 Elasticsearch, 3389 RDP, 5900 VNC, 11211 Memcached, 8080. پورت پایگاه دادهٔ در دسترس (MySQL، PostgreSQL، Redis، MongoDB، Elasticsearch) یا Telnet بحرانی ارزیابی می‌شود.

بررسی‌های SPF و DMARC چه چیزی را گزارش می‌کنند؟

هر دو رکورد از DNS عمومی خوانده می‌شوند، حتی برای سایتی که ایمیل نمی‌فرستد، چون بدون آن‌ها هر کسی می‌تواند ایمیلی بفرستد که وانمود می‌کند از دامنهٔ شماست. نبود رکورد SPF متوسط است؛ رکورد SPF دارای +all، که به همهٔ سرورهای اینترنت اجازه می‌دهد، بالا است. نبود رکورد DMARC در _dmarc متوسط است؛ p=none (یا نبود برچسب p=) فقط پایش می‌کند و پایین است؛ p=quarantine یا p=reject قبول می‌شود. دامنه‌ای که اصلاً ایمیل نمی‌فرستد می‌تواند v=spf1 -all منتشر کند.

کدام سرآیندهای امنیتی را بررسی می‌کند و چه مقداری قبول می‌شود؟

شش سرآیند در پاسخ صفحهٔ اصلی شما. در صورت نبود، HSTS و Content-Security-Policy بالا، X-Content-Type-Options و X-Frame-Options متوسط، و Referrer-Policy و Permissions-Policy پایین هستند. Strict-Transport-Security به max-age دست‌کم 15552000 (۱۸۰ روز) نیاز دارد: کمتر از آن پایین است و max-age=0 متوسط. Content-Security-Policy ضعیف‌شده (متوسط) شمرده می‌شود اگر script-src اجازهٔ 'unsafe-inline' بدهد، سیاست اجازهٔ 'unsafe-eval' بدهد، یا default-src یا script-src نویسهٔ عام * را به‌تنهایی داشته باشد. X-Content-Type-Options باید دقیقاً nosniff باشد. X-Frame-Options باید DENY یا SAMEORIGIN باشد و اگر CSP مقدار frame-ancestors را تعیین کند لازم نیست. Referrer-Policy فقط با unsafe-url یا no-referrer-when-downgrade گزارش می‌شود. Permissions-Policy فقط باید وجود داشته باشد. برای هر سرآیند غایب یا ضعیف یک فرمان curl -sI آمده است تا خودتان آن را بررسی کنید.

ویژگی‌های کوکی (Secure، HttpOnly، SameSite) را چگونه بررسی می‌کند؟

هر سرآیند Set-Cookie در پاسخ صفحهٔ اصلی شما را می‌خواند (تا 12 کوکی) و در هر کدام Secure، HttpOnly و SameSite را بررسی می‌کند. نبود Secure یا HttpOnly متوسط است؛ نبود فقط SameSite پایین است، و SameSite=None بدون Secure جداگانه گزارش می‌شود چون مرورگرها این کوکی را رد می‌کنند. کوکی‌ای که هر سه را دارد قبول می‌شود. راه‌حل معمول Secure; HttpOnly; SameSite=Lax است (در Django: SESSION_COOKIE_SECURE، SESSION_COOKIE_HTTPONLY و SESSION_COOKIE_SAMESITE). اسکن وارد حساب نمی‌شود، پس کوکی‌هایی را که فقط پس از ورود ساخته می‌شوند نمی‌بیند. خودتان با این فرمان بررسی کنید: curl -sI https://your-site/ | grep -i set-cookie

بررسی CORS چگونه کار می‌کند و چه زمانی بحرانی است؟

یک درخواست GET با Origin: https://scanner-probe.example به صفحهٔ اصلی شما می‌فرستد و Access-Control-Allow-Origin و Access-Control-Allow-Credentials را در پاسخ می‌خواند. نبود سرآیند Access-Control-Allow-Origin، یا یک مبدأ ثابت که مبدأ آزمایشی را بازنمی‌گرداند، قبول است. بازگرداندن مبدأ آزمایشی همراه با Access-Control-Allow-Credentials: true بحرانی است، چون هر سایتی که کاربرِ واردشده باز کند می‌تواند پاسخ‌های او را بخواند. بازگرداندن مبدأ بدون اعتبارنامه متوسط است. نویسهٔ عام * پایین است، یا متوسط اگر اعتبارنامه هم مجاز باشد (مرورگرها این ترکیب را رد می‌کنند). فقط صفحهٔ اصلی آزموده می‌شود و درخواست پیش‌پرواز OPTIONS فرستاده نمی‌شود، پس مسیرهای API را جداگانه بیازمایید: curl -sI -H "Origin: https://scanner-probe.example" https://your-site/api/ | grep -i access-control

بررسی TLS چه چیزی را آزمایش می‌کند (انقضای گواهی، TLS 1.0 و 1.1)؟

به درگاه 443 وصل می‌شود و زنجیره گواهی و نام میزبان را اعتبارسنجی می‌کند. گواهی‌ای که معتبر نباشد شدت بالا دارد، گواهی منقضی‌شده علاوه بر آن بحرانی علامت می‌خورد و گواهی‌ای که کمتر از 15 روز به انقضایش مانده متوسط است؛ در غیر این صورت موضوع، صادرکننده، تاریخ انقضا و نام‌های SAN به‌عنوان قبول نمایش داده می‌شوند. پروتکل توافق‌شده باید TLS 1.2 یا TLS 1.3 باشد و هر نسخه قدیمی‌تر بالا است. سپس جداگانه یک دست‌دهی TLS 1.0 و یک دست‌دهی TLS 1.1 را امتحان می‌کند: سروری که هر یک را بپذیرد یافته متوسط می‌گیرد، چون هر دو طبق RFC 8996 منسوخ شده‌اند. اگر OpenSSL خود اسکنر نتواند نسخه قدیمی را پیشنهاد کند، به‌جای حدس زدن چیزی گزارش نمی‌شود. راه‌حل در nginx این است: ssl_protocols TLSv1.2 TLSv1.3; تاریخ‌ها را خودتان با این دستور بررسی کنید: echo | openssl s_client -connect your-site:443 -servername your-site 2>/dev/null | openssl x509 -noout -dates

آیا بررسی می‌کند که HTTP به HTTPS هدایت شود؟

بله. نشانی http://your-site/ را بدون دنبال کردن تغییر مسیرها درخواست می‌کند. 301 یا 308 به یک نشانی https:// قبول است. 302، 303 یا 307 به HTTPS پایین است، چون مرورگرها تغییر مسیر موقت را به خاطر نمی‌سپارند و هر بازدید تازه با یک درخواست رمزنشده شروع می‌شود. صفحه‌ای که روی HTTP رمزنشده ارائه شود (پاسخ 2xx) بالا است. اگر درگاه 80 اصلاً پاسخ ندهد، این فقط اطلاعاتی است، نه شکست. راه‌حل در nginx این است: server { listen 80; return 301 https://$host$request_uri; }، سپس Strict-Transport-Security را اضافه کنید. خودتان با این دستور بررسی کنید: curl -I http://your-site/

کدام متدهای HTTP را علامت می‌زند (TRACE، PUT، DELETE)؟

یک درخواست OPTIONS به صفحه اصلی شما می‌فرستد و سرآیند Allow را می‌خواند، یا اگر Allow نباشد Access-Control-Allow-Methods را. اگر TRACE، TRACK، PUT یا DELETE اعلام شده باشد، شدت متوسط است؛ PATCH یا CONNECT به‌تنهایی پایین است؛ فقط متدهای استاندارد خواندن قبول است. اگر سرور هیچ‌یک از این دو سرآیند را نفرستد، چیزی گزارش نمی‌شود. اعلام یک متد ثابت نمی‌کند که کار می‌کند، پس پیش از هر تغییری آن را بررسی کنید. TRACE می‌تواند سرآیندهای درخواست، از جمله کوکی‌ها، را به فراخوان برگرداند (Cross-Site Tracing). nginx به‌طور پیش‌فرض TRACE را رد می‌کند؛ در Apache مقدار TraceEnable Off را تنظیم کنید. PUT و DELETE را به مسیرهای API که به آن‌ها نیاز دارند محدود کنید و پشت احراز هویت بگذارید. خودتان با این دستور بررسی کنید: curl -X OPTIONS -i https://your-site/

فهرست‌شدن پوشه‌ها ("Index of /") را چگونه تشخیص می‌دهد؟

7 مسیر را درخواست می‌کند: /, /static/, /assets/, /uploads/, /images/, /files/ و /backup/. مسیری که با HTTP 200 و صفحه‌ای پاسخ دهد که عنوان یا سرتیتر اصلی آن با "Index of /" شروع شود، با شدت متوسط گزارش می‌شود (CWE-548)، چون فهرست فایل‌هایی را نشان می‌دهد که از هیچ‌جا پیوند ندارند، مثل نسخه‌های پشتیبان، خروجی‌ها و نسخه‌های قدیمی. اگر هیچ مسیری چنین نباشد، بررسی قبول است؛ اگر سایت در دسترس نباشد، انجام‌نشده گزارش می‌شود. راه‌حل در nginx این است: autoindex off; (مقدار پیش‌فرض است، پس دنبال یک autoindex on صریح بگردید)، در Apache: Options -Indexes، سپس هر چیز حساسی را از ریشه وب بیرون ببرید. خودتان با این دستور بررسی کنید: curl -s https://your-site/uploads/ | head -20

آیا محتوای مختلط و فرم‌هایی را که از طریق HTTP ارسال می‌شوند پیدا می‌کند؟

بله، در صفحه اصلی. HTML را همان‌طور که ارائه می‌شود می‌خواند (هیچ JavaScript اجرا نمی‌شود) و هر تگ script، link، iframe یا img را که src یا href آن با http:// شروع می‌شود فهرست می‌کند. اگر یکی از آن‌ها فایل .js یا .css باشد یافته متوسط است، چون اسکریپت یا شیوه‌نامه‌ای که در مسیر جایگزین شود درون صفحه HTTPS شما اجرا می‌شود؛ فقط تصویر و قاب پایین است؛ نبودن هیچ‌کدام یعنی قبول (CWE-311). فرمی که action آن با http:// شروع شود بالا گزارش می‌شود (CWE-319)، چون هر چه در آن تایپ شود، از جمله رمز عبور، بدون رمزگذاری فرستاده می‌شود. راه‌حل این است که این نشانی‌ها را به https:// تغییر دهید یا نسبی کنید و سرآیند Content-Security-Policy: upgrade-insecure-requests را به‌عنوان تور ایمنی اضافه کنید. خودتان بررسی کنید با curl -s https://your-site/ | grep -Eo "(src|href|action)=.http://[^ >]*"

در robots.txt و security.txt چه چیزی را بررسی می‌کند؟

robots.txt: فایل /robots.txt را دریافت می‌کند و اگر با HTTP 200 و به‌صورت فایل متنی پاسخ دهد، خطوط Disallow را در 8000 نویسه نخست آن می‌خواند. مسیر Disallow که یکی از واژه‌های admin, internal, private, backup, config, staging, test, api, secret, dev را داشته باشد پایین گزارش می‌شود (CWE-200): robots.txt عمومی است و فقط از خزنده‌های قانون‌مند می‌خواهد وارد نشوند، پس فهرست کردن این مسیرها آن‌ها را آشکار می‌کند. از آن‌ها با ورود به حساب محافظت کنید و برای دور نگه داشتن صفحه‌ها از جست‌وجو از noindex استفاده کنید. security.txt: نشانی /.well-known/security.txt را که RFC 9116 تعیین کرده درخواست می‌کند و اگر فایل خط Contact: داشته باشد آن را به سود شما حساب می‌کند. نبودن فایل امتیازی کم نمی‌کند. RFC 9116 فیلد Expires: را هم الزامی می‌داند که اسکن آن را بررسی نمی‌کند، پس هر دو را منتشر کنید، برای نمونه Contact: mailto:security@your-site, Expires: 2027-06-30T23:00:00Z. خودتان بررسی کنید با curl -s https://your-site/.well-known/security.txt

بررسی CAA دنبال چه چیزی است و چگونه رکورد CAA اضافه کنم؟

رکوردهای CAA (RFC 8659) نام میزبانی را که وارد کرده‌اید از طریق DNS-over-HTTPS کلادفلر (Cloudflare) استعلام می‌کند. اگر رکوردی پیدا شود، بررسی قبول است و شواهد حداکثر 5 مورد از آن‌ها را نشان می‌دهد؛ اگر هیچ رکوردی نباشد، "No CAA record" را با شدت کم گزارش می‌کند، چون در این حالت هر مرجع صدور گواهی عمومی می‌تواند برای این نام گواهی صادر کند. رکورد CAA مرجع‌هایی را که واقعاً استفاده می‌کنید فهرست می‌کند، مثلاً your-site. IN CAA 0 issue "letsencrypt.org"، به‌همراه 0 iodef "mailto:security@your-site" برای دریافت گزارش‌ها. برای هر مرجعی که استفاده می‌کنید یک خط issue اضافه کنید، و اگر گواهی‌های wildcard باید از مرجع دیگری بیایند یک خط issuewild. خودتان با dig CAA your-site بررسی کنید

چرا اسکن www یا یک زیردامنه نبودِ CAA، SPF یا DMARC را گزارش می‌کند؟

هر بررسی DNS روی دقیقاً همان نامی اجرا می‌شود که وارد کرده‌اید؛ پس www.example.com به‌صورت www.example.com استعلام می‌شود، نه example.com، و این سه رکورد به شکل‌های متفاوتی به ارث می‌رسند. CAA: مرجع صدور گواهی که روی www.example.com رکورد CAA نیابد، به example.com بالا می‌رود و از آن استفاده می‌کند (RFC 8659، بخش 3)، پس "No CAA record" روی زیردامنه ممکن است هشدار نادرست باشد. DMARC: گیرندگان به سیاست دامنه سازمانی برمی‌گردند که می‌تواند با sp= سیاست جداگانه‌ای برای زیردامنه‌ها تعیین کند (RFC 9989 که جایگزین RFC 7489 شده است)، پس نبودِ رکورد در _dmarc.www.example.com معمولاً با _dmarc.example.com پوشش داده می‌شود. SPF: ارث‌بری وجود ندارد (RFC 7208)، پس "No SPF record" برای آن نام درست است؛ نام میزبانی که ایمیل نمی‌فرستد می‌تواند v=spf1 -all منتشر کند. استعلام DNS ناموفق هم به‌صورت رکورد ناموجود نشان داده می‌شود. دامنه اصلی بدون www را هم اسکن کنید یا با dig CAA example.com و dig TXT _dmarc.example.com تأیید کنید