حریم خصوصی و حذف خودکار دادهٔ حساس

در این آموزش
  1. همیشه حذف می‌شود
  2. اختیاری: ایمیل و شمارهٔ موبایل
  3. چیزی که redaction جایگزینش نیست
  4. محل نگه‌داری و جداسازی داده

هر چقدر هم دقت کنیم، دیر یا زود یک رمز، توکن یا شمارهٔ کارت سر از لاگ درمی‌آورد. LogMug پیش از ذخیرهٔ هر لاگ، روی سرور، یک مرحلهٔ پاک‌سازی (redaction) اجرا می‌کند. این برگه می‌گوید دقیقاً چه چیزی حذف می‌شود، چه چیزی اختیاری است و کجا هنوز مسئولیت با خود برنامه است.

همیشه حذف می‌شود

این موارد برای همهٔ پروژه‌ها و بدون هیچ تنظیمی پیش از ذخیره پاک می‌شوند:

مورد نمونهٔ ورودی آنچه ذخیره می‌شود
شمارهٔ کارت بانکی 4111-1111-1111-1111 [CARD]
توکن Bearer و Basic Authorization: Bearer eyJhbGci... Bearer [REDACTED]
پارامترهای حساس در نشانی /login?user=ali&password=123456 /login?user=ali&password=[REDACTED]
ویژگی با نام حساس ویژگی ApiKey یا user.password مقدار: [REDACTED]
  • شمارهٔ کارت فقط وقتی حذف می‌شود که از بررسی الگوریتم Luhn (رقم کنترلی کارت‌های بانکی) رد شود. به این ترتیب شمارهٔ سفارش، شناسهٔ تراکنش یا timestamp طولانی که صرفاً ۱۶ رقم دارد دست نمی‌خورد.
  • پارامترهای نشانی شامل password، token، api_key، secret و شکل‌های نزدیک به آن‌ها می‌شود.
  • نام ویژگی‌ها: مقدار هر ویژگی‌ای که نامش به password، secret، token، authorization، cookie، credential یا api key شبیه باشد، کامل با [REDACTED] جایگزین می‌شود؛ مثلاً Password، access_token، Cookie یا X-Api-Key.

این پاک‌سازی روی متن لاگ، پیام خطا، stack trace، ویژگی‌های لاگ و ویژگی‌های سرویس (resource) اجرا می‌شود.

اختیاری: ایمیل و شمارهٔ موبایل

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

  1. در داشبورد به صفحهٔ پروژه بروید.
  2. در بخش «حریم خصوصی» گزینهٔ «حذف نشانی‌های ایمیل» و/یا «حذف شماره‌های موبایل» را تیک بزنید (نقش فقط‌خواندنی این گزینه‌ها را نمی‌تواند تغییر دهد).
  3. تنظیم روی لاگ‌هایی اعمال می‌شود که از این به بعد می‌رسند؛ لاگ‌های ذخیره‌شده تغییر نمی‌کنند.

با روشن بودن این گزینه‌ها ایمیل به [EMAIL] و موبایل به [MOBILE] تبدیل می‌شود. شماره‌های موبایل با شکل‌های 09xxxxxxxxx، +989xxxxxxxxx و 00989xxxxxxxxx شناخته می‌شوند.

چیزی که redaction جایگزینش نیست

پاک‌سازی سمت سرور آخرین خط دفاع است، نه اولین. چند محدودیت که باید بدانید:

  • لاگ پیش از رسیدن به LogMug در مسیر و شاید روی دیسک یا کنسول سرور خودتان هم نوشته شده است. آنجا هیچ پاک‌سازی‌ای نیست.
  • الگوها فقط شکل‌های شناخته‌شده را می‌گیرند. کد ملی، آدرس، رمز یک‌بارمصرف داخل یک جملهٔ آزاد یا یک توکن اختصاصی با قالب ناآشنا شناخته نمی‌شوند.
  • stack trace هم با همان الگوها پاک‌سازی می‌شود، ولی فقط همان الگوها؛ پس دادهٔ حساس را در متن استثناهایی که می‌سازید نگذارید.
  • بهترین کار این است که بدنهٔ کامل درخواست و پاسخ، هدرهای احراز هویت و اشیای کامل کاربر را از اساس لاگ نکنید و فقط شناسه‌ها را بنویسید.

فهرست کامل چیزهایی که نباید لاگ شوند و روش جلوگیری از آن در کد را در مقالهٔ چه چیزی را هرگز نباید لاگ کرد آورده‌ام. روی دیگر همین سکه، اعتماد به محتوای لاگ است؛ مقالهٔ تزریق لاگ نشان می‌دهد چطور ورودی کاربر می‌تواند لاگ جعلی بسازد.

محل نگه‌داری و جداسازی داده

  • داده‌ها در مرکز دادهٔ داخل ایران نگه‌داری می‌شوند.
  • هر سازمان فقط دادهٔ خودش را می‌بیند و همهٔ جستجوها به سازمان و پروژهٔ کاربر محدودند.
  • همهٔ ارسال‌ها با HTTPS انجام می‌شود و کلیدهای ingest فقط به‌صورت هش ذخیره می‌شوند.
  • لاگ‌ها پس از پایان مدت نگه‌داری پلن خودکار حذف می‌شوند؛ مدت نگه‌داری هر پلن را ببینید.

کلید پروژه‌تان را هنوز ندارید؟

در پلن رایگان یک پروژه بسازید؛ راهنمای اتصال با نشانی و کلید واقعی خودتان همان‌جا آماده است.

شروع رایگان