یک تابع 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 پس‌از‌فیلتر برای چک‌های اضافی استفاده کنید؛ در نهایت آرایه‌ی فیلترشده را بازگردانید.

توسط پژوهشگر در 202 روز قبل ساعت 02:47
دسته بندی ها: PHP PHP for beginner
nima در 202 روز قبل ساعت 08:30

برای اعتبارسنجی هدرهای 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/* را مد نظر قرار دهید و در نهایت آرایهٔ فیلترشده را بازگردانید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری