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