در یک اسکریپت PHP، مقدار هدر HTTP با نام "filter_id" را خوانده و با یک الگوی regex بررسی کنید که تنها حروف و اعداد و کاراکترهای "-" و "_" را داشته باشد و طول آن بین ۸ تا ۳۲ کاراکتر باشد؛ در صورت معتبر بودن "Valid" و در غیر این صورت "Invalid" چاپ شود.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:07

0.0

برای حل این مسئله در PHP می‌توانید هدر را از $_SERVER['HTTP_FILTER_ID'] یا از getallheaders()/apache_request_headers() بخوانید، مقدار را trim کرده و با preg_match('/^[A-Za-z0-9_-]{8,32}$/') آن را اعتبارسنجی کنید. نکات امنیتی: همیشه ورودی‌های کلاینت را پاک‌سازی و اعتبارسنجی کنید، از الگوهای anchoring (^) و ($) استفاده کنید تا مطمئن شوید تمام رشته مطابق الگوست و از اعتماد کامل به هدرها خودداری کنید.

توسط پژوهشگر در 202 روز قبل ساعت 03:07
دسته بندی ها: PHP PHP for beginner
nima در 202 روز قبل ساعت 07:28

برای اعتبارسنجی هدر، بهتر است مقدار را از $_SERVER['HTTP_FILTER_ID'] (یا از getallheaders()) بخوانید و قبل از هرچیز trim کنید. از الگوی با anchoring استفاده کنید تا مطمئن شوید کل رشته مطابقت دارد: preg_match('/^[A-Za-z0-9_-]{8,32}$/', $value) باید نتیجه=true بدهد. در صورت نبود یا نامعتبر بودن مقدار، خروجی به‌طور صریح Invalid باشد تا رفتار مشخصی داشته باشید و از injection جلوگیری کنید. همچنین به امنیت headerها توجه کنید و از فیلترینگ و sanitation مناسب استفاده کنید.

گزارش

1 پاسخ

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

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