یک تابع PHP بنویسید که یک آرایه حاوی هدرهای HTTP را میگیرد و با استفاده از filter_var_array و الگوهای regex، نامها و مقادیر هدرها را اعتبارسنجی کرده و فقط هدرهای معتبر را بازگرداند.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:47 0.0
در PHP از filter_var_array همراه با FILTER_VALIDATE_REGEXP برای تعیین قوانین اعتبارسنجی هر هدر استفاده کنید: برای نام هدر از یک regex مثل /^[A-Za-z0-9-]+$/ استفاده نمایید، برای مقدار Authorization الگوی Bearer با فرمت توکن JWT (سه بخش base64url جداشده با نقطه) را بررسی کنید و برای Content-Type صرفاً مقادیری مانند application/json یا text/* را بپذیرید. قبل از اعتبارسنجی کاراکترهای CRLF را حذف یا escape کنید تا از Header Injection جلوگیری شود و برای موارد پیچیدهتر از preg_match پسازفیلتر برای چکهای اضافی استفاده کنید؛ در نهایت آرایهی فیلترشده را بازگردانید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای اعتبارسنجی هدرهای HTTP با filter_var_array در PHP، قبل از اعمال فیلترها لازم است کاراکترهای CRLF را حذف یا escape کنید تا از header injection جلوگیری شود. نام هر هدر را با regex /^[A-Za-z0-9-]+$/ اعتبارسنجی کنید و پس از فیلتر با preg_match برای بررسیهای اضافی مانند طول یا ترکیب کاراکترها مطمئن شوید. برای مقدار Authorization، الگوی Bearer با توکن JWT را با یک FILTER_VALIDATE_REGEXP مناسب و بررسی ساختار سه قسمت base64url جداشده با نقطه پیادهسازی کنید. برای Content-Type، پذیرش فقط مقادیر مشخص مانند application/json یا text/* را مد نظر قرار دهید و در نهایت آرایهٔ فیلترشده را بازگردانید.
گزارش