محدود کردن بازنویسی محتوای پروکسی با no-transform و HTTPS
از no-transform برای اعلام سیاست محتوای HTTP و از HTTPS برای محافظت از اتصال مرورگر در برابر تغییر صفحه در مسیر استفاده کنید.
یک پروکسی تغییردهنده میتواند پاسخ را در مسیر رسیدن به مرورگر تغییر دهد: تصویری را دوباره فشرده کند، نشانهگذاری را بازنویسی کند یا JavaScript کمکی درج کند. صفحهای که در یک شبکه کار میکند و در شبکهای دیگر نشانهگذاری ناآشنایی میگیرد، ممکن است با همین رفتار واسطه روبهرو شده باشد.
برای سایتی که اداره میکنید، HTTP یک دستورالعمل صریح پاسخ ارائه میدهد:
Cache-Control: no-transform
RFC 9111 لازم میداند واسطهای که این دستورالعمل پاسخ را دریافت میکند محتوا را دستنخورده بگذارد، چه آن واسطه یک حافظه نهان پیاده کرده باشد چه نه. این موضوع به فشردهسازی دوباره تصویر و درج نشانهگذاری مربوط است، نه فقط به اینکه شیء ذخیره میشود یا نه.
آن را همراه سیاست حافظه نهان موجود نگه دارید
اگر پاسخی از پیش دستورالعملهای حافظه نهان دارد، الزام را آگاهانه بیفزایید، نه اینکه بقیه سیاست را کنار بگذارید. برای نمونه، یک دارایی قابل ذخیره عمومی میتواند چنین باشد:
Cache-Control: public, max-age=3600, no-transform
این نمونه سیاست تازگی یکساعته را حفظ میکند و در همان حال تغییر محتوا را ممنوع میسازد. no-transform به معنای no-store نیست و پردازش معمول انتقال را غیرفعال نمیکند. آن را روی پاسخهایی تنظیم کنید که محتوای اصلیشان اهمیت دارد، از جمله پاسخهای جداگانه تصویر در جایی که مناسب است.
این دستورالعمل از راه تبعیت واسطه کار میکند. از نظر رمزنگاری مانع نمیشود که دستگاهی در شبکه دستور را نادیده بگیرد.
از انتقال هم محافظت کنید
HTTPS به مرورگر اتصالی با احراز هویت و محافظت از یکپارچگی به همتای TLS خود میدهد. یک پروکسی معمول اپراتور که ترافیک رمزگذاریشده را عبور میدهد نمیتواند بیصدا اسکریپتی در آن اتصال محافظتشده درج کند. تأیید گواهی را فعال نگه دارید؛ پروکسی بازرسی مورد اعتماد محلی که TLS را پایان میدهد ترتیبی دیگر است.
صفحه و منابع وابسته به آن را روی HTTPS ارائه دهید. بازدیدکنندگان HTTP را به HTTPS هدایت کنید و برای استقراری که میتواند بهطور پیوسته آن را پشتیبانی کند HSTS را در نظر بگیرید. بازهدایت بهتنهایی با تبادل HTTP محافظتنشده برای بازدیدکنندهای که از نشانی HTTP استفاده کرده آغاز میشود؛ سیاست HSTS که پیشتر آموخته یا از پیش بارگذاری شده باشد آن انتخاب اولیه را تغییر میدهد.
مسدود کردن اسکریپت تزریقشده میتواند اثرهای دیدنی آن را کاهش دهد، ولی پاسخ ممکن است از پیش HTML تغییرکرده یا نشانیهای بازنویسیشده تصویر داشته باشد. جایگزینی یک نام تابع قدیمی، افزودن نظری نامعمول یا نگاشت یک نشانی تزریق تاریخی، یکپارچگی محتوا را برای واسطه بعدی اثبات نمیکند.
هنگام بررسی یک گزارش، پاسخ دریافتی را با محتوای موردنظر مبدأ مقایسه کنید و مشخص کنید TLS کجا پایان مییابد. این شاهد سودمندتر از آن است که هر اسکریپت ناآشنا را اشکالی در کد برنامه خود سایت بدانیم.