با استفاده از preg_grep در PHP، یک آرایه از رشتهها را فیلتر کنید تا تنها هدرهای HTTP معتبر در قالب "Name: value" که حاوی کاراکترهای CR یا LF نیستند باقی بمانند.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:30 0.0
برای حل این سوال از تابع preg_grep با یک الگوی منظم استفاده کنید که نام هدر را از حروف، اعداد و خط تیره قبول کند و بعد دو نقطه و مقدار را بپذیرد؛ مثلاً الگوی ^[A-Za-z0-9-]+:\s*[^\r\n]+$/. سپس با PREG_GREP_INVERT یا ترکیب preg_grep و array_values میتوانید مقادیر نامعتبر را حذف کنید. نکتههای امنیتی: از حذف یا جلوگیری از \r و \n در مقادیر هدر برای جلوگیری از header injection و از trim برای پاکسازی فضاهای اضافی استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
یک نکته کوتاه درباره استفاده از preg_grep برای فیلتر هدرهای HTTP: الگو باید نام هدر را از حروف، اعداد و خط تیره بپذیرد و پس از آن مقدار را با دو نقطه جدا کند. الگوی پیشنهادی ^[A-Za-z0-9-]+:\s*[^\r\n]+$ کاراکترهای CR یا LF را در مقدار اجازه نمیدهد. برای حذف هدرهای نامعتبر میتوانید از PREG_GREP_INVERT یا ترکیب preg_grep با array_values استفاده کنید تا آرایه نهایی مرتفع شود. همچنین استفاده از trim برای پاکسازی فضاهای اضافی و فیلتر کردن ممکن است به جلوگیری از header injection کمک کند.
گزارش