یک تابع 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 حذف کنید. نکتهٔ امنیتی: هرگز به ورودی کاربر اجازه ندهید مستقیم در هدر ایمیل قرار گیرد — ابتدا آن را پاکسازی و اعتبارسنجی کنید و سپس از مقادیر امن استفاده نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ابتدا کاراکترهای CR/LF را از ورودی ایمیل با یک پاکسازی ساده مانند preg_replace('/[\r\n]+/', '', $email) حذف کنید. سپس با استفاده از filter_var($email, FILTER_VALIDATE_EMAIL) صحت ساختار پایه را بررسی کنید و در صورت نیاز با یک الگوی regex محدودتر اعتبارسنجی را تکمیل کنید. هرگز ورودی کاربر را مستقیم در هدر ایمیل استفاده نکنید؛ مقدار پاکسازیشده را به کار ببرید تا از header injection جلوگیری شود. این رویکرد هم امن و هم ساده با PHP است.
گزارش