فصل 6 با استفاده از نام مورد نیاز وارد شوید. امنیت داده های کاربر راه حل هایی برای مشکل "اوه، یک خطا رخ داد" در اینستاگرام

ارسال شده در 23 اکتبر ساعت 11:15 ب.ظ.

استفاده از تأیید نام کاربری برای افزایش امنیت حساب

به عنوان یک اقدام امنیتی اضافی، سیستم تأیید نام کاربری را برای افزایش امنیت حساب در برخی از صفحات EA، از جمله صفحه حساب EA شما، در اختیار شما قرار می دهیم.

  • قابل توجه بازیکنان فیفا: این تابعبرای دسترسی به سرورهای FIFA Ultimate Team و برنامه های شریک مورد نیاز است.

این اقدام امنیتی برای جلوگیری از ورود افراد به حساب EA شما از دستگاه‌های ناشناس بدون رمز عبور و تأیید نام کاربری شما طراحی شده است. اعلان ها به تلفن همراه یا ایمیل دلخواه شما ارسال می شود. در طول فرآیند تأیید نام کاربری، موقت است کدهای دیجیتالدسترسی برای هر کاربر خاصی که برای ورود به یک حساب از یک دستگاه ناشناخته لازم است.


تأیید نام کاربری را فعال کنید

1. به ea.com بروید و وارد شوید.

2. روی نام کاربری خود کلیک کنید، سپس "حساب من" را انتخاب کنید.

3. تب Security را انتخاب کنید، جایی که می توانید قسمت تأیید نام کاربری را پیدا کنید.

4. برای فعال کردن تأیید نام کاربری، روی Enable کلیک کنید، سؤال امنیتی خود را وارد کنید و یکی از گزینه‌ها را انتخاب کنید: ایمیل، برنامه هویت یا پیامک برای دریافت کد تأیید.

  • در صورت انتخاب گزینه " پست الکترونیک” به جای پیامک، لطفاً مطمئن شوید که آدرس ایمیل ارائه شده برای حساب شما یک آدرس معتبر و فعال است که مرتباً برای پیام‌های جدید چک می‌کنید.
  • یک برنامه شناسایی برای تبلت ها و تلفن های همراه به شما امکان می دهد کدهای تأیید را در آن دستگاه ها ایجاد کنید تا وارد حساب خود شوید.
  • نوع دستگاه خود را از لیست کشویی انتخاب کنید و Google Authenticator را برای دستگاه‌های Apple و Android یا Authenticator برای دستگاه‌هایی که استفاده می‌کنند دانلود کنید. سیستم عاملپنجره ها.
  • بازیکنان FIFA 15 در پلی استیشن 3 و ایکس باکس 360 نیازی به اقدامات امنیتی اضافی در هنگام تأیید نام کاربری خود با برنامه احراز هویت ندارند.

5. اکنون زمانی که می خواهید از یک دستگاه ناشناس وارد سیستم شوید، یک کد تأیید دریافت خواهید کرد. هر 90 روز، وقتی از دستگاه‌های مطمئن وارد حساب خود می‌شوید، یک کد تأیید دریافت خواهید کرد. به این ترتیب، تنها شما می توانید با استفاده از یک کد منحصر به فرد به حساب EA خود دسترسی داشته باشید.


در صورت لزوم، می‌توانید با بازگشت به صفحه مدیریت حساب خود و انتخاب غیرفعال کردن، تأیید نام کاربری را غیرفعال کنید.*

توجه داشته باشید

  • *اگر در حال بازی با FIFA Ultimate Team هستید، تأیید نام کاربری را غیرفعال نکنید، در غیر این صورت از دسترسی شما منع خواهید شد.
  • مطمئن شوید که یک سوال امنیتی و پاسخ برای FIFA Ultimate Team نیز ایجاد و تأیید کنید.

برنامه شناسایی خود را راه اندازی کنید

برنامه شناسایی بیشتر است راه سریعبه طور ایمن هویت خود را تأیید کنید یک برنامه شناسایی بر روی خود راه اندازی کنید دستگاه موبایلبرای ورود به سیستم با استفاده از کدی که برای شناسایی دو مرحله ای تولید می کند.

1. تب Security را در صفحه حساب من باز کنید و بخش تأیید نام کاربری را پیدا کنید.

2. روی Enable کلیک کنید تا تأیید نام کاربری فعال شود، به سؤال امنیتی پاسخ دهید، Identity Application را انتخاب کنید و روی Continue کلیک کنید.

3. سیستم عامل تلفن مورد نیاز خود را از لیست کشویی انتخاب کنید و کد QR را با استفاده از یک برنامه بارکد خوان اسکن کنید یا در فروشگاه برنامه گوشی خود برای احراز هویت برای برنامه مناسب جستجو کنید: Google Authenticator در Android و iOS یا Authenticator در ویندوز تلفن.

4. برنامه شناسایی را باز کنید و گزینه افزودن دستی حساب را انتخاب کنید.

5. کد QR را اسکن کنید یا وارد کنید کد مخفیبرای پیوند دادن برنامه هویت خود به حساب EA شما.

6. راه‌اندازی برنامه شناسایی را با وارد کردن کدی که برای حساب Electronic Arts شما ایجاد کرده و روی «فعال کردن تأیید نام کاربری» کلیک کنید، به پایان برسانید.

زمانی که باید در آینده نام کاربری خود را تأیید کنید:

1. برنامه شناسایی را باز کنید.

2. کد شش رقمی حساب الکترونیک آرتز خود را وارد کنید.

کد تولید شده برای مدت محدودی معتبر است. اگر کد فعلی شما در حال منقضی شدن است، منتظر بمانید تا برنامه کد جدیدی ایجاد کند تا زمان کافی برای وارد کردن آن داشته باشید.

اگر نتوانم از آن استفاده کنم باید چه کار کنم؟ تلفن همراهیا وقتی به کد نیاز دارم ایمیل بزنم؟ آیا امکان تولید کدهای راهنما وجود دارد؟

اگر گوشی، شناسه یا پست الکترونیکدر دسترس شما نیستند، تنها راهاز یک رایانه ناشناخته به حساب EA وارد شوید - استفاده از کدهای کمکی. مطمئن شوید که آنها را در مکانی امن و در دسترس شما قرار دهید. می توانید این کدها را در حساب EA خود در قسمت تنظیمات حریم خصوصی در مشتری Origin یا به صورت آنلاین مشاهده و به روز کنید.

  • روی "Security"، سپس "View" و "Help Codes" کلیک کنید.*
  • همچنین می توانید از ویژگی «درخواست کد جدید پس از ورود به FIFA Ultimate Team» استفاده کنید.

*اگر کدهای پشتیبانی شما تمام شد، می توانید کدهای جدید را در صفحه مدیریت حساب ایجاد کنید.

تایید اطلاعات تماستا مطمئن شوید کد صحیح است.

اگر با کد تأیید نام کاربری خود مشکل دارید، لطفاً مطمئن شوید که آدرس ایمیل یا شماره تلفن شما به درستی وارد شده است. هنگام استفاده از شناسه، مطمئن شوید که برنامه به درستی نصب شده است.

  • اگر هنگام فعال کردن تأیید نام کاربری خود تصمیم به ارسال کد به ایمیل خود کرده اید، می توانید آدرس ایمیل خود را در بخش درباره من در صفحه مدیریت حساب خود یا از طریق مشتری Origin بررسی و به روز کنید.
  • اگر Identity App را انتخاب کنید، می توانید از یک بارکد یا کد QR برای اسکن و جستجوی کد بین ?secret= و & استفاده کنید.
  • اگر هنگام فعال کردن تأیید نام کاربری، گزینه ارسال کد از طریق پیامک را انتخاب کرده اید، می توانید شماره تلفن خود را در قسمت امنیت صفحه مدیریت حساب خود یا از طریق مشتری Origin بررسی و به روز کنید.
  • ایجاد یا تایید یک سوال امنیتی و پاسخ.

پس از تأیید اطلاعات تماس خود، این گزینه را خواهید داشت که تأیید نام کاربری را برای دریافت کد جدید فعال کنید.

چرا این فرم را گرفتم؟

در حال حاضر یک حمله Brute-force در سایت شما وجود دارد. حمله Brute-force یک حمله حدس زدن رمز عبور است. در این صورت یک رمز عبور برای پنل مدیریت سایت شما انتخاب می شود.

برای جلوگیری از هک شدن سایت شما و افزایش امنیت آن، ما حفاظت اضافی را نصب کرده ایم.

اکنون چگونه می توانم به پنل مدیریت سایت دسترسی داشته باشم؟

اکنون هنگام دسترسی به پنل مدیریتی سایت خود (در جوملا یا وردپرس)، یک پنجره اضافی برای وارد کردن لاگین و رمز عبور با عبارت “لطفا از رمز عبور کنترل پنل خود استفاده کنید” ظاهر می شود. به عنوان یک لاگین، باید لاگین سرویس هاست خود را وارد کنید، به نظر می رسد "u1234567". رمز عبور رمز عبور فعلی سرویس میزبانی شما است.

پس از گذراندن احراز هویت اولیه HTTP، یک فیلد استاندارد ورود به سیستم را در پنل مدیریت سایت خود خواهید دید. اکنون باید لاگین و رمز عبور مدیر سایت را وارد کنید.

احراز هویت پایه HTTP چگونه کار می کند

هنگام وارد کردن login-password در پنجره اصلی احراز هویت، مقدار ورود و هش رمز عبوربا مقادیر موجود در یک فایل خاص مقایسه خواهد شد ~/etc/users، در کنترل پنل هاست شما موجود است. محتویات فایل چیزی شبیه به این است: "u1234567:dm48bspxIO3rg". جایی که "u1234567" ورودی است و "dm48bspxIO3rg" هش رمز عبور(توجه: فقط هش، نه خود رمز عبور!). هش رمز عبور نتیجه تبدیل رمز عبور با استفاده از یک الگوریتم خاص است.

بنابراین، هنگامی که ورود و رمز عبور خود را در پنجره اصلی احراز هویت وارد می کنید، رمز عبور وارد شده از هشو با مقدار هش در فایل مقایسه می شود ~/etc/users. اگر مقادیر مطابقت داشته باشند، شما احراز هویت می شوید.

من نمی توانم احراز هویت اولیه را پاس کنم

احتمالاً رمز عبور را اشتباه وارد می کنید. یک رمز عبور جدید برای احراز هویت اولیه تنظیم کنید:

اگر احراز هویت اولیه را گذرانده اید اما نمی توانید مستقیماً به پنل مدیریت سایت جوملا یا وردپرس خود وارد شوید، از راهنما استفاده کنید:

چگونه حفاظت وب سایت خود را در برابر حملات Brute-Force افزایش دهیم؟

برای افزایش امنیت سایت:

  • ورود سوپرکاربر را به یک منحصربفردتر تغییر دهید. از نام های کوتاه استفاده نکنید، بهتر است از نام کوچک همراه با نام خانوادگی استفاده کنید. منابع زیادی در اینترنت وجود دارد که محبوب ترین لاگین ها در آنها جمع آوری شده است. با آنها آشنا شوید و هرگز از آنها استفاده نکنید.
  • یک رمز عبور پیچیده مدیر سایت تنظیم کنید. رمز عبور پیچیدهباید شامل حروف بزرگ و کوچک، اعداد و علائم اضافی مانند "* - _ # :" و غیره باشد. طول رمز عبور کمتر از 6 کاراکتر نیست. ترجیحا 10 به بالا.

چگونه فرم احراز هویت پایه HTTP را حذف کنیم؟

برای حذف فرم احراز هویت پایه HTTP:

AuthType Basic AuthName "لطفا از رمز عبور کنترل پنل خود استفاده کنید" AuthUserFile .../users Require valid-user

برای نظر دادن به یک خط، یک نماد هش ("#") در ابتدای خط قرار دهید، مانند این.

ما به صفحات زیر نیاز خواهیم داشت:

  • صفحه ثبت نام با فرم ثبت نام
  • صفحه فعال سازی اکانت
  • صفحه بازیابی رمز عبور
  • صفحه بازنشانی رمز عبور

فرم ورود به سایت در تمام صفحات سایت (مثلاً در هدر) قرار خواهد گرفت.

این صفحه ثبت نامی است که می خواهیم دریافت کنیم:

در اینجا نوع حساب تعیین می کند که کاربر را در کدام گروه ثبت نام کنیم. همچنین قسمت شناسایی (نام کاربری) ایمیل خواهد بود.

یک فراخوان قطعه به صفحه اضافه کنید ثبت نام:

[[!ثبت نام؟ &submitVar=`register-btn` &activationResourceId=`27` &activationEmailTpl=`Email.Activation` &activationEmailSubject=`شما در example.com ثبت نام کرده اید` &placeholderPrefix=`reg.` &successMsg=`

ممنون از اینکه ثبت نام کردید. به ایمیل شما [[!+reg.email]]یک ایمیل با لینک فعال کردن حساب شما ارسال شده است. برای تکمیل ثبت نام خود این لینک را دنبال کنید.
` &usernameField=`email` &usergroupsField=`reg_type` &customValidators=`valueIn` &validate=`username:blank, reg_type:valueIn=^Readers;Writers;Idlers ^, نام کامل: مورد نیاز:minLength=^6: دقیقه: eng:L. =^6^, password_confirm:password_confirm=^password^, email:required:email` ]] [[!+error.message:default=`[[!$Register.Form]]`]]

لطفا توجه داشته باشید که تمام برچسب های مربوط به ثبت نام الزامی است لزوماتماس بدون حافظه پنهان همین قوانین در هنگام پردازش فرم ها با قطعه FormI اعمال می شود.

بیایید به پارامترهای فراخوانی نگاه کنیم:

&submitVar=`register-btn`- ویژگی نام تگ را مشخص می کند ورودی. یعنی قطعه تنها در صورتی کار می کند که فرم با دکمه ای با نام خاص ارسال شود.

&activationResourceId=`42`- با نگاه کردن به آینده، 42 شناسه صفحه ای است که کاربر را در آن فعال می کنیم.

&activationEmailTpl=`Email.Activation`- یک تکه با یک نامه فعال سازی، در ادامه بیشتر در مورد آن.

&placeholderPrefix=`reg.`- نشان می‌دهد که همه متغیرهایی که در این قطعه ایجاد می‌شوند، به استثنای استثنائات نادر (در ادامه در این مورد) باید با «reg» شروع شوند.

&پیام موفقیت– پیامی که پس از ارسال موفقیت آمیز فرم نمایش داده می شود. توجه داشته باشید که می تواند حاوی مقادیری از فرم و هر تگ دیگر باشد. این پیامبرای مکان نگهدار ثبت نام کنید [[!+error.message]].نام کاملاً عجیب و غریب و در مستندات برای این لحظهخطا آنجا نوشته شده است [[!+reg.error.message]]،اما از کد کامپوننت نتیجه می گیرد که اینطور نیست.

&usernameField=`ایمیل`- مشخص می کند که از قسمت ایمیل به عنوان نام کاربری استفاده شود.

&usergroupsField=`reg_type`- فیلدی را تعریف می کند که گروهی را که کاربر جدید به آن اضافه می شود را مشخص می کند.

&customValidators=`valueIn`- تایید کننده های اضافی را مشخص می کند که باید به صورت دستی ایجاد شوند.

&تایید اعتبار– اعتبار سنجی ها برای هر فیلد با کاما از هم جدا می شوند و اگر برای یک فیلد چند اعتبار سنجی لازم باشد، آنها نیز با دو نقطه از هم جدا می شوند. بیایید آنها را جداگانه بررسی کنیم:

نام کاربری: خالی- یک تله هرزنامه ساده، به این معنی است که قسمت نام کاربری باید خالی بماند.

reg_type:valueIn=^Readers;Writers;Idlers^- گروه های ممکن را به سه مورد مشخص شده محدود می کنیم. در توزیع اولیه چنین چیزی وجود ندارد و هکرهای شیطانی می توانند مثلاً در گروه Administrator ثبت نام کنند (اگر نام آن را تغییر نداده باشید).

نام کامل: مورد نیاز:minLength=^6^- قسمت نام کامل نباید خالی باشد و حداقل دارای 6 کاراکتر باشد.

رمز عبور: مورد نیاز:minLength=^6^- مشابه برای رمز عبور.

password_confirm:password_confirm=^password^- رمزهای عبور باید مطابقت داشته باشند.

email:required:email- ایمیل نباید خالی باشد و یک ایمیل واقعی باشد.

طرح [[!+error.message:default=`[[!$Register.Form]]`]]در صورتی که به تازگی از صفحه بازدید کرده اید یا آن را اشتباه پر کرده اید، پیامی در مورد ارسال موفقیت آمیز فرم یا تکه ای از فرم نمایش می دهد.

اجازه دهید اعتباردهنده بالا را ایجاد کنیم ارزش در. برای انجام این کار، یک قطعه با نام ایجاد کنید ارزش درو کد زیر:

$valueIn = explode(";", $param); return in_array ($value, $valueIn);

حالا باید یک تکه ایجاد کنید ثبت نام. فرم . در این حالت به صورت زیر خواهد بود (از بوت استرپ 3 استفاده می شود):

[[!+reg.error.fullname:notempty=`
[[!+reg.error.fullname]]
`]]
[[!+reg.error.email:notempty=`
[[!+reg.error.email]]
`]]
[[!+reg.error.password:notempty=`
[[!+reg.error.password]]
`]]
[[!+reg.error.password_confirm:notempty=`
[[!+reg.error.password_confirm]]
`]]

همه فیلدها الزامی است

در این فرم به چند نکته در مورد MODX اشاره می کنم:


- فرم در همان صفحه ای که در آن نمایش داده می شود پردازش می شود.

مقدار را از مقادیر دریافت شده از فرم تنظیم کنید تا در صورت خرابی کاربر مجبور نباشد همه چیز را دوباره وارد کند.

[[!+reg.error.email:notempty=`[[!+reg.error.email]]`]]– مجددا در صورت خرابی پیغام خطا در زیر فیلد نمایش داده می شود.

– اگر قبلاً ویژگی را تنظیم کرده اید، حتماً نام دکمه را مشخص کنید &submitVar.


اکنون تنها چیزی که باقی می ماند ایجاد یک تکه است ایمیل.فعال سازی با نامه ای که سایت برای کاربر ارسال می کند:

ممنون از اینکه ثبت نام کردید! برای فعال سازی حساب کاربری خود به لینک زیر مراجعه کنید:

حساب خود را در Example.Com فعال کنید

پس از فعال سازی، می توانید با استفاده از ایمیل و رمز عبور خود وارد شوید:

وارد شدن:[[+ایمیل]]

کلمه عبور:[[+ رمز عبور]]


در اینجا می توانید از متغیرهایی با نام فیلدهای فرم استفاده کنید. لطفاً توجه داشته باشید که آنها بدون "reg" نوشته می شوند. یک مکان نگهدار نیز اضافه شده است [[+confirmUrl]]، که در آن لینک فعال سازی قبلاً ایجاد شده است، حتی نیازی به انجام کاری ندارید.


لمس پایانی هنر ثبت حساب جدید با استفاده از کامپوننت وارد شدنیک صفحه فعال سازی ایجاد خواهد شد. ما از یک الگوی خالی برای این صفحه استفاده می کنیم و در محتوای صفحه فقط باید یک برچسب تماس را مشخص کنید:

[[!تأیید ثبت نام؟ &redirectTo=`1`]]

که در آن 1 شناسه صفحه ای است که در صورت موفقیت آمیز بودن فعال سازی کاربر به آن هدایت می شود. در این صورت، او قبلاً وارد سیستم خواهد شد.


بیایید شروع به تنظیم ورود به نمایه کاربر کنیم. فرم مجوز ساده خواهد بود:

بیایید آن را با فراخوانی در جای مناسب اضافه کنیم:

[[!وارد شدن؟ &loginTpl=`Auth.Login` &logoutTpl=`Auth.Logout` &errTpl=`Auth.Login.Error` &actionKey=`action` &loginKey=`ورود به سیستم` &redirectToPrior=`1` &logoutResourceId=`1`]]

در اینجا ما یک تکه با فرم ورود به سیستم در بالا مشخص می کنیم ( &loginTpl=`Auth.Login`، یک قطعه با یک کد نشان داده شده به کاربران مجاز ( &logoutTpl=`Auth.Logout`)، یک قطعه کوچک با خروجی خطای ورود ( &errTpl=`Auth.Login.Error). پارامترهای زیر عبارتند از:

&actionKey=`عمل`و &loginKey=`ورود به سیستم`- شناسه های اصلی برای پردازش درخواست. اولی به معنای نام پارامتر در درخواست POST است و دومی به معنای مقدار آن است. یعنی فرم باید مقدار $_POST["action"]="login" را ارسال کند تا قطعه وارد شدنآن را پردازش کرد.

&redirectToPrior=`1`- یعنی بعد از ورود به همان صفحه ای که از آن وارد شده ایم منتقل می شویم.

&logoutResourceId=`1`- هنگام خروج از نمایه به صفحه ای با شناسه 1 می رویم.


Chunk Auth.Login :

[[!+ خطاها]]

فرم در همان صفحه پردازش می شود. اگر خطایی رخ دهد، در زیر فرم در محل نگهدارنده نمایش داده می شود [[!+ خطاها]].همچنین باید پیوندهای منابع با ثبت نام و بازیابی رمز عبور را به خاطر بسپارید. لطفاً توجه داشته باشید که در نام فیلد ایمیل = "نام کاربری" - در این قسمت است که قطعه ایمیل را کپی کرده است. ثبت نام، و برای کاربران منحصر به فرد است.


Chunk Auth.Logout:

[]` &tpl=`User.HeaderBadge` &innerJoin=`("modUserGroupMember":("نام مستعار":"modUserGroupMember"،"on":"modUser.id = modUserGroupMember.member")، "modUserGroup":("نام مستعار" :"modUserGroup"، "on":"modUserGroupMember.user_group = modUserGroup.id"))` &select=`("modUserGroup":("group_name": "modUserGroup.name"))` ]]

خروج از نمایه

اگر همه کاربران در یک گروه باشند این قسمت ضروری نیست. اما برای نمایش گروه کاربری، قطعات استاندارد موجود در مولفه Login کافی نیست. شما می توانید یک قطعه ساده برای دریافت نام گروه بنویسید xPDO، یا می توانید از یک قطعه آماده استفاده کنید pdoUsersدر بسته گنجانده شده است pdoTools. پارامترهای مشخص شده در این قطعه:

&users=`[[+modx.user.id]]`- فقط کاربر مجاز فعلی را انتخاب کنید.

&tpl=`User.HeaderBadge`- قسمتی که در آن اطلاعات مختصری درباره کاربر نمایش خواهیم داد.

&innerJoin– JSON با پیوستن به جداول گروه کاربر، توضیحات خارج از محدوده مقاله است. نکته اصلی این است که کار می کند J.

&انتخاب کنید– JSON که فیلد modUserGroup.name را با نام مستعار group_name به انتخاب اضافه می کند.


تکه با نشان کاربر User.HeaderBadge :

شما وارد شدید با عنوان [[+نام_گروه]][[+ نام کامل]] حساب شخصی

اگر به گروه کاربری نیاز نداشتیم، محتویات این قطعه را می‌توان مستقیماً در قطعه وارد کرد. Auth.Logout . در اینجا می توانید متغیرهایی را با هر فیلد modUser و modUserProfile به اضافه استفاده از آن نمایش دهید pdoUsersفیلد اضافه شد اسم گروه.


در تکه Auth.Login.Error خروجی خطای ساده:

[[+msg]]

ما با ورود تمام شد. در این مرحله کاربر می تواند با موفقیت ثبت نام و وارد شود. اما اگر رمز عبور خود را فراموش کرد چه؟ در این صورت، او بر روی پیوند "رمز عبور خود را فراموش کرده اید؟" کلیک می کند. و به صفحه بازیابی رمز عبور می رود که ابتدا آن را ایجاد کرده و در آنجا تماس برقرار می کنیم:

[[!رمز عبور را فراموش کرده اید؟ &tpl=`Auth.ForgotPass.Form` &submitVar=`forgotpass` &errTpl=`Auth.Login.Error` &sentTpl=`Auth.ForgotPass.Sent` &emailTpl=`Email.ForgotPass` &emailSubject=`در حال بازیابی دسترسی به Ex وب سایت. Com` &resetResourceId=`29`]]

بیایید به پارامترهای این فراخوانی نگاه کنیم:

&tpl=`Auth.ForgotPass.Form`- تکه ای از فرمی که کاربر ایمیل خود را در آن وارد می کند.

&submitVar=`گذر را فراموش کردم- در مورد قطعه ForgotPassword کافی است پارامتری با همین نام به سرور ارسال شود و فرقی نمی کند با چه مقدار غیر خالی.

&errTpl=`Auth.Login.Error` - خروجی خطا مشابه قطعه ورود به سیستم

&sentTpl=`Auth.ForgotPass.Sent`- این قسمت حاوی محتوایی است که در صورت ارسال موفقیت آمیز ایمیل تغییر رمز عبور نمایش داده می شود.

&emailTpl=`Email.ForgotPass`- خود نامه در اینجا موجود است.

&موضوع نامه الکترونیکی=`بازیابی دسترسی به حساب شما در وب سایت Example.Com` - عنوان نامه.

&resetResourceId=`29`- شناسه منبعی که رمز عبور به یک رمز جدید بازنشانی می شود.


تکه Auth.ForgotPass.Form:

[[+loginfp.errors]]

تنها چیز جدید در اینجا روشی متفاوت برای نمایش خطاها در مکان نگهدار است [[+loginfp.errors]]و با ارسال پارامتری که این فرم خاص رمز عبور را بازنشانی می کند: .

Auth.ForgotPass.Sent:

اطلاعات بازیابی حساب به ایمیل مشخص شده ارسال شده است: [[+ایمیل]].

می توانید از داده های فرم بالا در اینجا استفاده کنید.


ایمیل.ForgotPass:

[[+نام کامل]]،

برای فعال کردن رمز جدید خود به لینک زیر مراجعه کنید:

من یک رمز عبور جدید می خواهم

اگر همه چیز خوب پیش رفت، می توانید با استفاده از داده های زیر وارد نمایه خود شوید:

وارد شدن:[[+نام کاربری]]

کلمه عبور:[[+ رمز عبور]]

متشکرم،
مدیریت سایت Example.Com

همه چیز بسیار شبیه به قطعه نامه فعال سازی است، فقط رمز عبور در اینجا در قطعه ایجاد می شود.


مرحله آخر ایجاد منبعی است که کاربر از ایمیل برای به روز رسانی رمز عبور به آن مراجعه کند. در این منبع به یک تماس نیاز داریم:

[[!ResetPassword:empty=`

شما دستور بازنشانی رمز عبور را نداده اید. شاید شما آدرس اشتباهی دارید می توانید به صفحه اصلی سایت بروید یا از منوی بالا استفاده کنید.

`؟ &tpl=`Auth.ForgotPass.Reset`]]

اگر شخصی دوباره به طور ناگهانی یا تصادفی از این صفحه بازدید کند، این کد پیامی را نمایش می دهد. و اگر رمز عبور با موفقیت بازنشانی شود، پیامی از قسمت نمایش داده می شود Auth.ForgotPass.Reset:

رمز عبور شما با موفقیت به رمز مشخص شده در ایمیل بازنشانی شد. اکنون می توانید با این رمز عبور وارد شوید. فراموش نکنید که آن را در پروفایل خود تغییر دهید.

اکنون ما یک سیستم مجوز و ثبت نام کاربر کاملاً فعال داریم. تغییر مشخصات کاربران مجاز خارج از محدوده این مقاله خواهد بود.


1. یک صفحه ثبت نام ایجاد کنید و یک فراخوان قطعه به آن اضافه کنید ثبت نام.

2. با فرم ثبت نام تکه هایی ایجاد کنید ثبت نام. فرم و نامه فعال سازی ایمیل.فعال سازی.

3. یک صفحه تایید ثبت نام ایجاد کنید و یک فراخوان قطعه را روی آن قرار دهید تایید ثبت نام.

4. یک تماس قطعه اضافه کنید وارد شدنجایی که می خواهیم فرم ورود و نشان کاربر مجاز را قرار دهیم.

5. یک تکه با فرم ورود ایجاد کنید Auth.Login ، تکه ای حاوی اطلاعات کاربر مجاز Auth.Logout ، تکه ای با پیام خطا Auth.Login.Error .

6. یک صفحه بازیابی رمز عبور ایجاد کنید و یک فراخوان قطعه را روی آن قرار دهید رمز عبور را فراموش کرده ام.

7. یک تکه ایجاد کنید Auth.ForgotPass.Form با فرم بازیابی رمز عبور، تکه Auth.ForgotPass.Sent با پیامی در مورد ارسال موفقیت آمیز نامه، قطعه ایمیل.ForgotPass با ایمیل بازنشانی رمز عبور

8. یک منبع با بازنشانی رمز عبور نهایی ایجاد کنید و یک فراخوان قطعه را در آن قرار دهید بازنشانی رمز عبور.

9. یک تکه ایجاد کنید Auth.ForgotPass.Reset با پیامی مبنی بر اینکه رمز عبور با موفقیت بازنشانی شده است.

همین. از هر گونه اضافات و نظری خوشحال خواهم شد.

هنگام ساخت برنامه های تحت وب، مهم است که امنیت را جدی بگیرید، به خصوص زمانی که باید با به دست آوردن داده از کاربران سر و کار داشته باشید.

یک قانون امنیتی کلی این است که به هیچ کس اعتماد نکنید، بنابراین نمی توانید به کاربران اعتماد کنید که همیشه مقادیر صحیح را در فرم ها وارد کنند. به عنوان مثال، کاربر به جای وارد کردن آدرس ایمیل صحیح در فیلد، ممکن است یک آدرس نادرست یا حتی برخی داده های مخرب وارد کند.

وقتی صحبت از اعتبارسنجی داده های کاربر می شود، می توان آن را در سمت مشتری (در مرورگر وب) یا در سمت سرور انجام داد.

پیش از این، اعتبار سنجی سمت مشتری فقط با استفاده از جاوا اسکریپت انجام می شد. اما همه چیز تغییر کرده است (یا تقریباً تغییر کرده است)، زیرا با کمک HTML5، اعتبارسنجی را می توان در مرورگر انجام داد، بدون نیاز به نوشتن اسکریپت های اعتبارسنجی پیچیده در جاوا اسکریپت.

اعتبار سنجی فرم با استفاده از HTML5

HTML5 یک مکانیسم نسبتاً قوی بر اساس ویژگی های برچسب زیر ارائه می دهد : نوع , الگو و نیاز . با این ویژگی‌های جدید، می‌توانید برخی از قابلیت‌های اعتبارسنجی داده‌ها را در مرورگر بارگذاری کنید.

بیایید به این ویژگی ها نگاه کنیم تا بفهمیم چگونه می توانند به اعتبارسنجی فرم کمک کنند.

نوع ویژگی

این ویژگی نشان می دهد که کدام فیلد ورودی برای پردازش داده نمایش داده شود، برای مثال فیلد آشنا مانند

برخی از فیلدهای ورودی از قبل روشهای اعتبارسنجی استاندارد را بدون نیاز به نوشتن کد اضافی ارائه می دهند. مثلا، فیلد را بررسی می کند تا مطمئن شود که مقدار وارد شده با الگوی یک آدرس ایمیل معتبر مطابقت دارد. اگر یک کاراکتر نادرست در یک فیلد وارد شده باشد، تا زمانی که مقدار آن اصلاح نشود، فرم ارسال نمی شود.

سعی کنید با مقادیر فیلد ایمیل در نسخه نمایشی زیر بازی کنید.

انواع فیلد استاندارد دیگری نیز وجود دارد، مانند , و برای اعتبارسنجی اعداد، URL ها و شماره تلفن ها، به ترتیب.

توجه: به دلیل تفاوت در تعداد ارقام در شماره تلفن و تفاوت در قالب، فرمت شماره تلفن از کشوری به کشور دیگر متفاوت است. در نتیجه، مشخصات الگوریتمی برای بررسی شماره تلفن ها تعریف نمی کند، بنابراین در زمان نوشتن این ویژگی توسط مرورگرها پشتیبانی ضعیفی می شود.

خوشبختانه برای ما، اعتبار سنجی شماره تلفن را می توان با استفاده از ویژگی الگو انجام داد، که یک عبارت منظم را به عنوان آرگومان می گیرد، که در ادامه به بررسی آن خواهیم پرداخت.

ویژگی الگو

ویژگی الگو به احتمال زیاد باعث می شود که بسیاری از توسعه دهندگان فرانت اند از خوشحالی بپرند. این ویژگی یک عبارت منظم (مشابه فرمت عبارت منظم جاوا اسکریپت) را می پذیرد که برای بررسی صحت داده های وارد شده در فیلد استفاده می شود.

عبارات منظم زبانی است که برای تجزیه و دستکاری متن استفاده می شود. آنها اغلب برای عملیات پیچیده یافتن و جایگزینی و همچنین برای بررسی صحت داده های وارد شده استفاده می شوند.

امروزه عبارات منظم در اکثر زبان های برنامه نویسی محبوب و همچنین در بسیاری از زبان های برنامه نویسی، ویرایشگرها، برنامه ها، پایگاه های داده و ابزارهای خط فرمان گنجانده شده است.

عبارات منظم (RegEX) ابزاری قدرتمند، مختصر و منعطف برای تطبیق یک رشته متن، مانند کاراکترها، کلمات، یا الگوهای کاراکتر است.

با ارسال یک عبارت منظم به عنوان مقدار ویژگی الگو، می توانید تعیین کنید که چه مقادیری برای یک فیلد ورودی معین قابل قبول است و همچنین کاربر را در مورد خطاها مطلع کنید.

بیایید به چند نمونه از استفاده از عبارات منظم برای تأیید ارزش فیلدهای ورودی نگاه کنیم.

شماره تلفن ها

همانطور که قبلا ذکر شد، نوع فیلد tel به دلیل ناهماهنگی در فرمت شماره تلفن در کشورهای مختلف، به طور کامل توسط مرورگرها پشتیبانی نمی شود.

به عنوان مثال، در برخی کشورها قالب شماره تلفن به صورت xxxx-xxx-xxxx نشان داده می شود و خود شماره تلفن چیزی شبیه به این خواهد بود: 0803-555-8205 .

عبارت منظمی که این الگو با آن مطابقت دارد این است: ^\d(4)-\d(3)-\d(4)$. در کد این را می توان به صورت زیر نوشت:

مقادیر الفبایی

ویژگی مورد نیاز

این یک ویژگی Boolean است که برای نشان دادن اینکه مقدار یک فیلد داده شده باید برای ارسال فرم پر شود استفاده می شود. هنگامی که این ویژگی را به یک فیلد اضافه می کنید، مرورگر از کاربر می خواهد که قبل از ارسال فرم، این فیلد را پر کند.

این ما را از اجرای اعتبار سنجی فیلد با استفاده از جاوا اسکریپت نجات می دهد، که می تواند مدتی در زمان توسعه دهندگان صرفه جویی کند.

مثلا: یا (برای سازگاری با XHTML)

تمام دموهایی که در بالا مشاهده کردید از ویژگی مورد نیاز استفاده می کنند، بنابراین می توانید با تلاش برای ارسال فرم بدون پر کردن هیچ فیلدی، آن را امتحان کنید.

نتیجه

پشتیبانی مرورگر برای اعتبارسنجی فرم بسیار خوب است و برای مرورگرهای قدیمی می توانید از polyfills استفاده کنید.

شایان ذکر است که تکیه بر اعتبارسنجی سمت مرورگر به تنهایی خطرناک است، زیرا این بررسی ها را می توان به راحتی توسط مهاجمان یا ربات ها دور زد.

همه مرورگرها از HTML5 پشتیبانی نمی کنند و همه داده های ارسال شده به اسکریپت شما از فرم شما نمی آیند. به این معنی که قبل از پذیرش نهایی داده ها از کاربر، لازم است صحت آن را در سمت سرور بررسی کنید.

"حفاظت از احمق" مجموعه ای از اقدامات برای جلوگیری از ورود اطلاعات نادرست به یک فرم است. به عنوان مثال، اگر یک فیلد نیاز به وارد کردن یک عدد مثبت از 0 تا 10 داشته باشد، باید بررسی کنید که کاربر متن یا عددی را وارد نکند که در محدوده مشخص شده قرار نداشته باشد، یعنی. عدد نباید کمتر از صفر و بیشتر از ده باشد.

چرا اطلاعات نادرست وارد می شود؟ این عمدتا به سه دلیل انجام می شود.

  1. کاربر به طور تصادفی اشتباهی مرتکب شد، به عنوان مثال، او با بی توجهی آنچه را که باید نشان دهد خواند.
  2. صفحه وب اطلاعات را به روشی مبهم درخواست می کند و کاربر را وادار می کند تا حدس بزند و حدس بزند که واقعاً چه می خواهد. با این حال، نظرات توسعه دهنده و کاربر همیشه مطابقت ندارند.
  3. تعدادی از افراد هستند که دستورالعمل ها را به عنوان یک چالش درک می کنند و سعی می کنند برعکس عمل کنند. چنین کاربرانی چنین استدلال می‌کنند: «بله، از من می‌خواهند شماره‌ای را وارد کنم. اگر حروف را نشان دهم چه اتفاقی می‌افتد؟» سپس اطلاعات آشکارا نادرستی را می پرسند و می بینند که به چه چیزی منجر می شود.

باید فهمید که جمله بندی دقیق و صحیح اگرچه احتمال اشتباهات را کاهش می دهد، اما به هیچ وجه شما را از آنها نجات نمی دهد. فقط ابزارهای فنی در سمت سرور به شما امکان می دهد نتیجه مورد نیاز را به دست آورید و از وارد کردن اطلاعات نادرست خودداری کنید. با این حال، تجدید نظر یا، همانطور که به آن اعتبار سنجی سمت مشتری نیز می گویند، به شما امکان می دهد بدون ارسال فرم به سرور، به سرعت داده های وارد شده توسط کاربر را از نظر صحت بررسی کنید. این باعث صرفه جویی در زمان کاربر و کاهش بار روی سرور می شود. از نقطه نظر قابلیت استفاده، مزایایی نیز وجود دارد - کاربر بلافاصله پیامی در مورد اینکه چه اطلاعاتی را اشتباه وارد کرده است دریافت می کند و می تواند اشتباه خود را اصلاح کند.

زمینه اجباری

برخی از فیلدهای فرم باید قبل از ارسال به سرور تکمیل شوند. این، برای مثال، در فرم ثبت نام، که در آن باید یک لاگین و رمز عبور وارد کنید، اعمال می شود. همانطور که در مثال 1 نشان داده شده است، برای تعیین فیلدهای مورد نیاز، از ویژگی مورد نیاز استفاده کنید.

مثال 1. ویژگی مورد نیاز

HTML5 IE 10+ Cr Op Sa Fx

زمینه اجباری

وارد شدن:

کلمه عبور:

فیلدهای الزامی باید قبل از ارسال فرم پر شوند، در غیر این صورت فرم به سرور ارسال نمی شود و مرورگر در این مورد اخطار می دهد. نوع پیام به مرورگر بستگی دارد، برای مثال کروم یک راهنمای ابزار را همانطور که در شکل نشان داده شده است نمایش می دهد. 1.

برنج. 1. فیلد الزامی پر نشده است

صحت داده ها

در ابتدا، دو فیلد وجود دارد که ورودی کاربر به طور خودکار بررسی می شود. این یک آدرس وب و یک آدرس ایمیل است. Chrome همچنین فیلد تقویم را از نظر اعتبار بررسی می کند، اما فقط به این دلیل که رابط کلیک به تقویم ندارد. قوانین زیر برای این عناصر اعمال می شود.

  • آدرس وب ( ) باید حاوی پروتکل (http://, https://, ftp://) باشد.
  • آدرس ایمیل ( ) باید شامل حروف یا اعداد قبل از علامت @، بعد از آن، سپس نقطه و یک دامنه سطح اول باشد.

مرورگرها سیاست های کمی متفاوت برای تأیید داده های کاربر دارند. به عنوان مثال، اپرا به طور خودکار پروتکل http:// را در جلوی متن وارد شده قرار می دهد، در حالی که سایر مرورگرها منتظر آن از کاربر هستند. کروم و اپرا به یک نقطه در آدرس ایمیل نیاز دارند، فایرفاکس نیازی به آن ندارد.

مثال 2 فرمی را با فیلدهای الزامی نشان می دهد که در آن دو فیلد توسط مرورگر تأیید شده است.

مثال 2: صحت داده ها

HTML5 IE 10+ Cr Op Sa Fx

صحت داده ها

فرم را پر کنید (همه فیلدها الزامی است)

نام:

پست الکترونیک:

سایت اینترنتی:

Opera فقط در صورتی یک عنصر فرم را بررسی می کند که دارای ویژگی نام باشد.

آنچه در Opera هنگام وارد کردن داده های نادرست اتفاق می افتد در شکل نشان داده شده است. 2.

برنج. 2. هشدار در مورد داده های نادرست

قالب ورودی

برخی از داده ها را نمی توان به یکی از انواع عناصر فرم طبقه بندی کرد، بنابراین باید از یک فیلد متنی برای آن استفاده کنید. در عین حال، آنها طبق استاندارد خاصی وارد می شوند. بنابراین، یک آدرس IP شامل چهار عدد است که با یک نقطه از هم جدا شده اند (192.168.0.1)، کد پستی روسیه به شش رقم محدود می شود (124007)، یک شماره تلفن حاوی یک کد منطقه و تعداد خاصی از ارقام است که اغلب با یک عدد از هم جدا می شوند. خط تیره (391 555-341-42) و غیره. مرورگر باید یک الگوی ورودی را مشخص کند تا داده های وارد شده توسط کاربر را مطابق با آن بررسی کند. برای این کار از ویژگی pattern استفاده می شود و مقدار آن یک عبارت منظم است. برخی از مقادیر معمولی در جدول ذکر شده است. 1.

مثال 3 از شما می خواهد که مقدار رنگ هگزادسیمال (#ffcc00) را وارد کنید و اگر در این محدوده نباشد، مرورگر پیغام خطا را نمایش می دهد.

مثال 3. قالب ورودی

HTML5 IE 10+ Cr Op Sa Fx

ورودی رنگ

مقدار رنگ هگزادسیمال را وارد کنید (باید با # شروع شود)

در شکل شکل 3 یک هشدار را در مرورگر کروم نشان می دهد.

برنج. 3. داده های وارد شده با الگو مطابقت ندارد

لغو اعتبار

اعتبار سنجی همیشه برای یک فرم مورد نیاز نیست؛ برای مثال، یک توسعه دهنده می خواهد از یک راه حل جهانی جاوا اسکریپت استفاده کند و دیگر نیازی به بررسی تکراری توسط مرورگر ندارد. در چنین مواردی، باید اعتبار سنجی داخلی را غیرفعال کنید. برای این کار از ویژگی novalidate تگ استفاده کنید

. مثال 4 استفاده از این ویژگی را نشان می دهد.

مثال 4: لغو اعتبار

HTML5 IE 10+ Cr Op Sa Fx

اعتبار جدید

برای یک هدف مشابه، از ویژگی formnovalidate استفاده می شود که به دکمه ارسال فرم، در این مورد به تگ اضافه می شود. . در این صورت، فرم مثال 4 به این صورت خواهد بود.