یک تابع PHP بنویسید که یک رشته ایمیل را با استفاده از filter_var برای اعتبارسنجی و یک الگوی regex برای چک‌کردن ساختار دلخواه بررسی کند و هم‌زمان هرگونه کاراکتر CR/LF را از هدر حذف کند تا از header injection جلوگیری شود.

3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:55

0.0

برای حل این سؤال از توابع PHP مانند filter_var($email, FILTER_VALIDATE_EMAIL) برای اعتبارسنجی پایه استفاده کنید و در صورت نیاز یک preg_match با یک الگوی سادهٔ regex برای قوانین اضافی (مثلاً دامنه‌های خاص یا طول بخش محلی) اعمال کنید؛ پیش از اعتبارسنجی یا قبل از استفاده در هدر ایمیل، کاراکترهای \r و \n را با preg_replace('/[\r\n]+/', '', $email) یا trim حذف کنید. نکتهٔ امنیتی: هرگز به ورودی کاربر اجازه ندهید مستقیم در هدر ایمیل قرار گیرد — ابتدا آن را پاک‌سازی و اعتبارسنجی کنید و سپس از مقادیر امن استفاده نمایید.

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

ابتدا کاراکترهای CR/LF را از ورودی ایمیل با یک پاک‌سازی ساده مانند preg_replace('/[\r\n]+/', '', $email) حذف کنید. سپس با استفاده از filter_var($email, FILTER_VALIDATE_EMAIL) صحت ساختار پایه را بررسی کنید و در صورت نیاز با یک الگوی regex محدودتر اعتبارسنجی را تکمیل کنید. هرگز ورودی کاربر را مستقیم در هدر ایمیل استفاده نکنید؛ مقدار پاک‌سازی‌شده را به کار ببرید تا از header injection جلوگیری شود. این رویکرد هم امن و هم ساده با PHP است.

گزارش

1 پاسخ

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

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