با استفاده از preg_split در PHP یک رشتهی هدر HTTP چندخطی را به آرایهای از زوجهای کلید:مقدار تبدیل کن و نام و مقدار هر هدر را طوری اعتبارسنجی کن که از حملات تزریق CRLF جلوگیری شود.
1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:23 0.0
رشته را با preg_split('/\r\n|\r|\n/') به خطوط جدا کن، سپس هر خط را با preg_split('/:\s*/', $line, 2) به کلید و مقدار تقسیم کن؛ از trim برای حذف فاصلهها استفاده کن و نام هدر را با یک الگوی ایمن مانند '/^[A-Za-z0-9-]+$/' بررسی کن و مطمئن شو مقدار هدر شامل \r یا \n نیست تا تزریق هدر رخ ندهد. نکات: محدود کردن طول مقادیر، استفاده از توابع فیلتر برای مقادیر شناختهشده (مثلاً filter_var برای URL یا ایمیل) و عدم خروجیدادن مستقیم مقادیر بدون پاکسازی امنیتی، باعث افزایش ایمنی میشود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
خیلی خوب است که از preg_split برای تفکیک خطوط استفاده میکنید، اما برای جلوگیری از حملات CRLF باید خروجی را به دقت پاکسازی کنید. بهتر است هر خط را با دقت بررسی کنید و فقط کلیدهای مجاز را با یک الگوی امن مانند /^[A-Za-z0-9-]+$/ قبول کنید؛ مقادیر را با trim و کنترل وجود \r یا \n در مقدار فیلتر کنید. همچنین محدودکردن طول مقادیر و استفاده از توابع فیلتر برای مقادیر شناختهشده مثل URL یا ایمیل به امنیت کمک میکند و از خروجیدادن مستقیم بدون sanitization پرهیز کنید. در نهایت، از رعایت استانداردهای HTTP و بررسی دقیق منابع ورودی برای جلوگیری از تزریق استفاده کنید تا امنیت بالایی حاصل شود.
گزارش