با استفاده از 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 یا ایمیل) و عدم خروجی‌دادن مستقیم مقادیر بدون پاک‌سازی امنیتی، باعث افزایش ایمنی می‌شود.

توسط پژوهشگر در 202 روز قبل ساعت 02:23
دسته بندی ها: PHP PHP for beginner
arman در 202 روز قبل ساعت 09:55

خیلی خوب است که از preg_split برای تفکیک خطوط استفاده می‌کنید، اما برای جلوگیری از حملات CRLF باید خروجی را به دقت پاک‌سازی کنید. بهتر است هر خط را با دقت بررسی کنید و فقط کلیدهای مجاز را با یک الگوی امن مانند /^[A-Za-z0-9-]+$/ قبول کنید؛ مقادیر را با trim و کنترل وجود \r یا \n در مقدار فیلتر کنید. همچنین محدودکردن طول مقادیر و استفاده از توابع فیلتر برای مقادیر شناخته‌شده مثل URL یا ایمیل به امنیت کمک می‌کند و از خروجی‌دادن مستقیم بدون sanitization پرهیز کنید. در نهایت، از رعایت استانداردهای HTTP و بررسی دقیق منابع ورودی برای جلوگیری از تزریق استفاده کنید تا امنیت بالایی حاصل شود.

گزارش

1 پاسخ

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

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