با استفاده از تابع filter_input و FILTER_VALIDATE_REGEXP در PHP مقدار هدر HTTP_X_API_KEY را از متغیرهای سرور خوانده و با یک عبارت منظم بررسی کنید که تنها شامل حروف انگلیسی، اعداد، خط تیره و زیرخط باشد و طول آن بین 20 تا 64 کاراکتر باشد؛ در صورت معتبر بودن مقدار را چاپ کنید و در غیر این صورت پیغام خطا نمایش دهید.
10.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:44 0.0
برای حل این مسئله از filter_input با INPUT_SERVER و گزینه FILTER_VALIDATE_REGEXP استفاده کنید و یک الگوی regex مانند '/^[A-Za-z0-9_-]{20,64}$/' تعریف کنید. پس از خواندن مقدار هدر بررسی کنید که نتیجه فیلتر مقدار معتبری برگردانده است (و نه null یا false)، در غیر این صورت پیغام خطا نمایش دهید؛ نکته امنیتی: قبل از پردازش مقدار را trim کنید، از محدود کردن کاراکترها و طول اطمینان حاصل کنید و در صورت نیاز به جای filter_input از preg_match روی $_SERVER['HTTP_X_API_KEY'] هم میتوانید استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته: هنگام استفاده از filter_input با INPUT_SERVER برای header HTTP_X_API_KEY، مقدار ممکن است null باشد پس حتما نتیجه را بررسی کنید. از الگوی '/^[A-Za-z0-9_-]{20,64}$/' با FILTER_VALIDATE_REGEXP استفاده کنید و مقدار را قبل از فیلتر با trim پاکسازی کنید تا کاراکترهای اضافی حذف شوند. اگر فیلتر موفق نبود (false یا null)، پیام خطای مناسب نشان دهید. در صورت نیاز به کنترل دقیقتر، میتوانید به جای filter_input از preg_match روی $_SERVER['HTTP_X_API_KEY'] استفاده کنید.
گزارش