By · Last updated 2026-06-05

بازگشت به وبلاگفنی

GDPR در گزارش‌های برنامه: انطباق PII در JSON

گزارش‌های برنامه حاوی آدرس‌های ایمیل مشتری، IPها، و شماره حساب‌هایی هستند که ماده ۵(۱)(e) GDPR مدیریت آن‌ها را الزامی می‌کند.

June 5, 20266 دقیقه مطالعه
API logsGDPR complianceJSON anonymizationobservabilitystorage limitation

خطر ساکت GDPR در پشته گزارش شما

به‌روز شده برای سال ۲۰۲۶

اکثر تیم‌ها پایگاه داده خود را برای اطلاعات شخصی بررسی می‌کنند. کمتری همین کار را برای سیستم گزارش خود انجام می‌دهند.

ماده ۵(۱)(e) GDPR محدودیت مدت ذخیره اطلاعات شخصی را تعیین می‌کند. برای پایگاه‌های داده، تیم‌ها سیاست‌ها تعیین می‌کنند و وظایف حذف را اجرا می‌کنند. برای فایل‌های گزارش، قانون ساده‌تر است: همه چیز را برای ۹۰ روز برای اشکال‌زدایی نگه دارید.

مشکل؟ آن رکوردها اطلاعات شخصی دارند. ورودی‌های درخواست ایمیل کاربران دارند. گرفتارهای خطا مقادیر ورودی خام دارند. ورودی‌های دسترسی آدرس‌های IP دارند. هر کدام از اینها تحت GDPR به عنوان اطلاعات شخصی محسوب می‌شوند. تیم شما به یک پایه قانونی و یک برنامه نگهداری برای هر کدام نیاز دارد.

چه چیزی در فایل‌های گزارش شما قرار می‌گیرد

گزارش استاندارد برنامه وب طیف گسترده‌ای از PII را می‌کشد.

رکوردهای دسترسی (nginx/Apache):

  • آدرس‌های IP — اطلاعات شخصی طبق راهنمایی EDPB
  • رشته‌های user-agent — ممکن است اثر انگشت دستگاه را فعال کنند
  • توکن‌های نشست — اگر در خروجی نوشته شوند

رکوردهای برنامه (JSON ساختاریافته):

  • شناسه‌های کاربر و آدرس‌های ایمیل
  • خطاهای ورودی — اغلب شامل مقدار نامعتبر خام هستند، که ممکن است اطلاعات کاربر واقعی باشد
  • رویدادهای کسب‌وکار — شناسه‌های سفارش مرتبط به حساب‌های مشتری
  • کوئری‌های جستجو — ممکن است نام یا آدرس داشته باشند

رکوردهای دروازه API:

  • سرآیندهای احراز هویت — در برخی تنظیمات جزئاً گرفته می‌شوند
  • پارامترهای کوئری — ممکن است شناسه، نام، یا ایمیل کاربر داشته باشند
  • بدنه‌های درخواست و پاسخ — در تنظیمات سطح debug موجود هستند

ورودی‌های حسابرسی پایگاه داده:

  • کوئری‌های SQL با بندهای WHERE مانند email = 'user@example.com'
  • مقادیر شخصی تحت الفظی در پارامترهای کوئری

این عمداً انجام نمی‌شود. این یک اثر جانبی گزارش‌گیری ساخته‌شده برای اشکال‌زدایی است، نه GDPR.

راهنمایی EDPB درباره آدرس‌های IP

هیئت حفاظت داده اروپا می‌گوید آدرس‌های IP اطلاعات شخصی هستند. ISPها می‌توانند آن‌ها را به مشترکین مرتبط کنند. درون یک سازمان، می‌توانند کاربران خاص را شناسایی کنند.

تأثیر مستقیم است. رکوردهای دسترسی با آدرس‌های IP رکوردهای شخصی هستند. نگه‌داشتن خروجی nginx به مدت ۱۲ ماه یعنی نگه‌داشتن اطلاعات شخصی برای ۱۲ ماه. این به یک پایه قانونی تحت ماده ۶ نیاز دارد. همچنین نیاز دارد که دوره نگهداری با هدف بیان‌شده شما تطابق داشته باشد.

اکثر تیم‌ها این مرحله را نادیده می‌گیرند. «ما ورودی‌ها را برای ۹۰ روز نگه می‌داریم چون امنیت می‌گوید» یک قانون سرانگشتی است. این یک بررسی ماده ۵(۱)(e) GDPR نیست. برای اینکه این در یک برنامه گسترده‌تر چطور جا می‌گیرد مروری بر انطباق حقوقی ما را ببینید.

چطور به انطباق برسید

مسیر عملی برای اکثر تیم‌ها این نیست که پنجره‌های نگهداری را کوتاه کنند. دلایل عملیاتی و امنیتی برای پنجره‌های طولانی‌تر واقعی هستند. مسیر بهتر ماسک کردن رکوردها قبل از ذخیره‌سازی طولانی‌مدت است.

یک مدل ردیف‌بندی‌شده به خوبی کار می‌کند.

۰–۷ روز: رکوردهای خام کامل برای اشکال‌زدایی فعال. هفت روز برای اکثر تیم‌ها کافی است.

۷–۹۰ روز: رکوردهای ماسک‌شده برای تحلیل روند و بررسی امنیتی. آدرس‌های IP جابجا می‌شوند. ایمیل‌های کاربر به توکن‌های پایدار تبدیل می‌شوند. شماره حساب‌ها ماسک می‌شوند. فیلدهای کلیدی — مُهرهای زمانی، کدهای خطا، تأخیر، نقاط پایانی — همان‌طور باقی می‌مانند.

۹۰+ روز (در صورت نیاز): فقط خروجی تجمیع‌شده. تعداد رویدادها، نرخ‌های خطا، دامنه‌های تأخیر. هیچ رکورد سطح کاربری باقی نمی‌ماند.

اطلاعات شخصی در هفت روز متوقف می‌شود. خروجی تجمیع‌شده می‌تواند بدون افشای هیچ کس ادامه یابد. برای جزئیات بیشتر امنیت و انطباق را ببینید.

ساختار را برای نظارت دست نخورده نگه دارید

ماسک‌گذاری خوب ساختار JSON را دست نخورده نگه می‌دارد. فقط محتوا را جابجا می‌کند. این خروجی را برای اشکال‌زدایی و هشدارها مفید نگه می‌دارد.

همان‌طور نگه داشته می‌شود:

  • کلیدهای JSON و تودرتوبودن
  • مُهرهای زمانی و ترتیب زمانی
  • انواع خطا و کدهای وضعیت HTTP
  • روش‌های HTTP، مسیرها، و مقادیر تأخیر
  • انواع رویداد کسب‌وکار

جابجا می‌شود:

  • آدرس‌های ایمیل → توکن پایدار برای هر اصلی (مثلاً user1@example.com)
  • آدرس‌های IP → دامنه‌های RFC 5737 (192.0.2.x)
  • شماره حساب → ACCT_XXXXX
  • شماره تلفن → +XX XXX XXX XXXX
  • نام‌ها در متن خطا → [PERSON]

توکن‌های پایدار ردپاها را مفید نگه می‌دارند. یک ردپا برای user1@example.com در ۴۰ ورودی به همان شکل اصلی کار می‌کند. معیارهای تجمیع‌شده — نرخ‌های خطا، تأخیر، توان عملیاتی — اصلاً به اطلاعات شخصی نیاز ندارند. برای اصطلاحات مستعارسازی و ناشناس‌سازی واژه‌نامه را ببینید.

سه روش برای ادغام این

سه الگو اکثر تیم‌های مهندسی را پوشش می‌دهند.

گزینه ۱ — ماسک‌گذاری خط لوله: Fluentd یا Logstash هر خط را قبل از ارسال آن رهگیری می‌کند. یک مرحله ماسک‌گذاری به صورت داخلی اجرا می‌شود. Elastic یا Datadog فقط رکوردهای پاک‌شده دریافت می‌کنند. هیچ تغییر کد برنامه لازم نیست.

گزینه ۲ — دسته شبانه: رکوردهای خام در ذخیره‌سازی محلی فرود می‌آیند. یک وظیفه شبانه خروجی روز قبل را ماسک می‌کند و نسخه خام را حذف می‌کند. رکوردهای ماسک‌شده به ذخیره‌سازی طولانی‌مدت می‌روند. خروجی خام فقط هفت روز نگه داشته می‌شود.

گزینه ۳ — ماسک‌گذاری قبل از اشتراک‌گذاری: رکوردهای خام با کنترل‌های دسترسی سخت داخلی می‌مانند. قبل از اشتراک‌گذاری با تسترهای نفوذ یا پیمانکاران خارجی، یک عبور ماسک‌گذاری اجرا کنید. طرف‌های خارجی همیشه نسخه‌های تمیز دریافت می‌کنند.

برای اسناد GDPR، ماسک‌گذاری یک «اقدام فنی» تحت ماده ۳۲ است. ابزار، تنظیمات آن، و سیاست نگهداری خود را در رکوردهای پردازش فعالیت‌ها (RoPA) تحت ماده ۳۰ ثبت کنید. برای سوالات رایج RoPA FAQ ما را ببینید.

می‌خواهید یک مثال دنیای واقعی ببینید؟ برای جزئیات پیاده‌سازی مشخص مطالعات موردی را بررسی کنید. همچنین می‌توانید قیمت‌گذاری ما را مرور کنید تا ببینید کدام طرح شامل خطوط لوله ماسک‌گذاری داخلی است.

منابع

آماده‌اید داده‌های خود را محافظت کنید؟

شروع به ناشناس‌سازی PII با بیش از ۲۸۵ نوع نهاد در ۴۸ زبان.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.