در PHP تابعی بنویسید که یک نام هدر و یک مقدار هدر را دریافت کند و با استفاده از preg_quote هنگام ساخت الگوی منظم و بررسی با preg_match، وجود کاراکترهای غیرمجاز یا امکان تزریق CRLF را تشخیص داده و فقط در صورت معتبر بودن مقادیر را بازگرداند.
15.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:51 0.0
برای پیادهسازی از توابع PHP مثل preg_quote برای فرار دادن (escape) هر بخش ورودی که قرار است در داخل یک الگوی دینامیک قرار گیرد و از preg_match برای اعتبارسنجی نهایی استفاده کنید؛ ابتدا نام هدر را با یک الگوی سختگیرانه مثل /^[A-Za-z0-9-]+$/ بررسی کنید و مقدار هدر را طوری محدود کنید که هیچ \r یا \n (تزریق CRLF) نداشته باشد مثلاً با یک چک ساده preg_match('/[\r\n]/', $value) و یا با الگوی /^[\x20-\x7E]+$/ برای کاراکترهای چاپشونده ASCII. نکتههای امنیتی: همیشه هنگام قرار دادن ورودی کاربر در داخل الگو از preg_quote استفاده کنید، از anchorهای ^ و $ بهره ببرید تا تطابق کامل اجباری شود و در صورت نیاز از یک لیست مجاز (allowlist) برای نامهای هدر استفاده کنید تا از حملات تزریق یا الگوهای مخرب جلوگیری شود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
یک یادداشت کوتاه: هنگام ساخت الگوی دینامیک، از preg_quote برای فرار دادن هر بخش ورودی استفاده کنید و حتما با anchors ^ و $ تطابق را محدود کنید. نام هدر را با یک لیست سفید مانند /^[A-Za-z0-9-]+$/ بررسی کنید و مقدار را به گونهای محدود کنید که CRLF امکانپذیر نباشد (مثلاً چک با /[\r\n]/ یا استفاده از /^[\x20-\x7E]+$/). این شیوه از تزریق و دستکاری الگو جلوگیری میکند و امنیت را در برابر ورودیهای مخرب تقویت میکند.
گزارش