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

مشخص کنید پشته شما کدام یک از این سه را واقعاً انجام می‌دهد و سپس قاعده متناظر با آن را پیوست کنید. برچسب‌های محصول اینجا چیزی را روشن نمی‌کنند و پروتکل مورد استفاده نیز ملاک نیست.

سه کنشی که یک پروکسی یا VPN می‌تواند انجام دهد

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

واسطه حافظه نهان متفاوت عمل می‌کند: درخواست را تجزیه می‌کند، پاسخ را برای مدتی که محاسبه می‌کند یا از سرآیندها می‌خواند ذخیره می‌کند و همان شیء ذخیره‌شده را بعداً به مشتریان بازپخش می‌کند. اکنون چیزی بیرون از سیم وجود دارد که با URL و اعتبارسنج کلید خورده است، و نگهداری آن یک انتخاب پیکربندی است نه یک اثر جانبی.

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

کنشآنچه پس از آن باقی می‌ماندپرسشی که نتیجه را تعیین می‌کند
انتقال یک جریانوضعیت ترجمه و بافرهایی که چند ثانیه دوام می‌آورندکدام مقرره واسطه، انتقال گذرا را پوشش می‌دهد؟
ذخیره یک پاسخیک شیء به‌همراه فراداده تازگی و اعتبارسنجآیا نگهداری و بازپخش مجاز بود، و تا چه زمانی؟
ارائه اثر زیر URL شمانسخه‌ای منتشرشده خطاب به مخاطبی تازهکدام اجازه، توزیع به آن مخاطب را پوشش می‌دهد؟

جایی که پروکسی رمزگشا انتقال را به نسخه‌برداری تبدیل می‌کند

تمایزی که بیشتر بحث‌ها را تعیین می‌کند این است که آیا جعبه هرگز متن آشکار را در اختیار می‌گیرد. یک تونل ناب، خواه WireGuard، خواه یک دستگاه OpenVPN tun یا یک ارسال -L در SSH، متن رمزشده را میان دو سر جابه‌جا می‌کند و چیزی خواندنی بر جای نمی‌گذارد. پروکسی‌ای که TLS را خاتمه می‌دهد برعکس عمل می‌کند: دست‌دادن را کامل می‌کند، پاسخ را در حافظه بافر می‌کند و سپس جریان را به سمت مشتری دوباره رمز می‌کند. میان این عملیات، اثر در قالبی وجود دارد که اپراتور می‌تواند بازرسی کند و نگه دارد.

17 USC 106 بازتولید و توزیع را در شمار حقوق انحصاری می‌آورد و هر یک تابع محدودیت‌های همان عنوان است. یک بافر میلی‌ثانیه‌ای ممکن است بی‌دردسر در محدودیتی بگنجد؛ شیئی که نگهداری و بازپخش می‌شود بسیار دشوارتر در آن جا می‌گیرد. مدت و هدف وزن بیشتری از این واقعیت دارند که اصلاً به حافظه دست زده شده است.

هیچ‌یک از این‌ها VPN را به مجوز تبدیل نمی‌کند و هیچ‌یک هر پروکسی را ناقض حق نمی‌کند. انتقال یک واقعیت در میان چند واقعیت است و پرسش قابل ارزیابی همان است: کدام کنش، بر مطالب چه کسی، با چه اجازه‌ای.

سرآیندهای حافظه نهان اجازه پروتکل را توصیف می‌کنند، نه اجازه قانونی

یک حافظه نهان HTTP از فراداده پاسخ تصمیم می‌گیرد چه چیزی را می‌تواند ذخیره کند و RFC 9111 قواعدی را که دنبال می‌کند تعیین می‌کند. Cache-Control: no-store به هر حافظه نهان سازگار می‌گوید پاسخ را دور بیندازد، در حالی که private استفاده مجدد را به یک کاربر محدود می‌کند و یک max-age طولانی به ذخیره‌سازی مشترک دعوت می‌کند. یک درخواست به شما می‌گوید مبدأ کدام سیاست را انتخاب کرده است. پیش از بحث درباره هر چیز دیگری آن را اجرا کنید.

curl -sI https://origin.example/media/report.pdf | grep -i -E 'cache-control|etag|age'

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

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

پیش از راه‌اندازی سرویس چه چیزی را بنویسید

ترتیبات را با واژه‌هایی توصیف کنید که فردی بیرونی بتواند بررسی کند. مطالب و منبع آن را نام ببرید، کنش‌هایی را که سامانه انجام می‌دهد فهرست کنید و بگویید هر شیء ذخیره‌شده چه مدت زنده می‌ماند.

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

یک فهرست بازبینی کوتاه شکاف‌های تکرارشونده را پوشش می‌دهد:

  • منبع مطالب و شرایط پیوست آن.
  • هر کنشی که انجام می‌شود: ارسال، ذخیره، ویرایش، ارائه.
  • نگهداری برای هر کلاس شیء، به ساعت یا روز.
  • اجازه یا محدودیتی که برای مرحله ارائه به آن تکیه شده است.
  • راه تماس و مسیر حذف برای صاحبان حق.

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

مقالات مرتبط