با استفاده از 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 برای پاک‌سازی فضاهای اضافی استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:30
دسته بندی ها: PHP PHP for beginner
sara در 221 روز قبل ساعت 13:00

یک نکته کوتاه درباره استفاده از preg_grep برای فیلتر هدرهای HTTP: الگو باید نام هدر را از حروف، اعداد و خط تیره بپذیرد و پس از آن مقدار را با دو نقطه جدا کند. الگوی پیشنهادی ^[A-Za-z0-9-]+:\s*[^\r\n]+$ کاراکترهای CR یا LF را در مقدار اجازه نمی‌دهد. برای حذف هدرهای نامعتبر می‌توانید از PREG_GREP_INVERT یا ترکیب preg_grep با array_values استفاده کنید تا آرایه نهایی مرتفع شود. همچنین استفاده از trim برای پاکسازی فضاهای اضافی و فیلتر کردن ممکن است به جلوگیری از header injection کمک کند.

گزارش

1 پاسخ

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

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