SHET22

تغییر حساسیت رمز عبور ووکامرس موقع خرید و ثبت نام

تغییر حساسیت رمز عبور ووکامرس موقع خرید و ثبت نام

مشتری بعد از کلی گشتن، بالاخره محصولتون رو پسندیده، انداخته توی سبد خرید و رسیده به مرحله ثبت‌نام. رمز عبورش رو می‌زنه، ووکامرس با یه پیام قرمز می‌گه «رمز عبور خیلی ضعیف است». دوباره امتحان می‌کنه، بازم ایراد می‌گیره. بار سوم یه چیزی مثل Ali@1234! می‌زنه که خودش هم فردا یادش نمی‌مونه. خیلی وقت‌ها هم اصلاً بار سومی در کار نیست، چون تب رو بسته و رفته.

اگه فروشگاه ووکامرسی دارید، این دقیقاً همون‌جاییه که دارید بی‌سروصدا مشتری از دست می‌دید. خبر خوب اینه که تغییر حساسیت رمز عبور ووکامرس کار سختی نیست و با یه فیلتر ساده حلش می‌کنیم. توی این مقاله قدم به قدم می‌ریم جلو؛ هم کدش رو می‌ذاریم، هم نکته‌های امنیتی‌ای که اگه رعایت نکنید ممکنه بعداً پشیمون بشید.

سخت‌گیری ووکامرس روی رمز عبور

ووکامرس از خودش سلیقه‌ای عمل نمی‌کنه. پشت این ماجرا یه کتابخونه به اسم zxcvbn هست (همون چیزی که وردپرس هم ازش استفاده می‌کنه) که رمز رو از صفر تا چهار امتیازدهی می‌کنه. این کتابخونه فقط تعداد کاراکترها رو نمی‌شمره؛ می‌ره چک می‌کنه که آیا رمز شبیه یه کلمه توی دیکشنریه، آیا الگوی کیبوردی داره (مثل qwerty)، آیا تاریخ تولده و چیزهایی از این دست.

منطقش هم کاملاً درسته: ووکامرس یه فروشگاهه، پای اطلاعات مشتری و آدرس و سابقه سفارش وسطه. ولی نکته اینجاست که این سخت‌گیری به صورت پیش‌فرض برای همه اعمال می‌شه، چه مدیر سایت، چه یه مشتری که فقط می‌خواد یه محصول ۲۰۰ هزار تومنی بخره. و این همون‌جاییه که باید دستی توش ببرید.

تاثیر رمز سخت روی نرخ تبدیل فروشگاه

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

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

مهم‌ترین مزیتش کوتاه شدن مسیر خریده. هرچی مرحله‌های بین «دلم این رو می‌خواد» تا «پرداخت شد» کمتر باشه، احتمال اینکه مشتری وسط راه ولش کنه کمتره. مخصوصاً کاربر موبایل که تایپ کردن رمز پیچیده روی صفحه‌کلید گوشی براش عذاب‌آوره.

از این گذشته، خیلی از مشتری‌ها رمز ساده‌ای که یادشونه رو می‌زنن و دفعه بعد بدون دردسر برمی‌گردن. در مقابل، رمز پیچیده‌ای که مجبورشون کردید بسازن، معمولاً فراموش می‌شه و دفعه بعد باید برن سراغ «رمز عبور را فراموش کرده‌ام»، یعنی یه مرحله اضافه دیگه.

معایب و ریسک‌ها

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

نکته مهم‌تر اینه که حساب‌های هک‌شده مشتری فقط مشکل خودشون نیست؛ مشکل شماست. سفارش‌های جعلی، آدرس‌های تغییریافته و اطلاعاتی که لو می‌ره، همه‌ش برمی‌گرده به اعتبار فروشگاه شما. پس قرار نیست فقط کد رو بذارید و برید. پایین‌تر یه بخش کامل درباره‌ش حرف زدیم.

آموزش تغییر حساسیت رمز عبور ووکامرس با کد

خب بریم سراغ اصل مطلب. ووکامرس یه فیلتر به اسم woocommerce_min_password_strength داره که دقیقاً برای همین کار ساخته شده. کافیه مقدارش رو عوض کنید.

کد اصلی

php

add_filter( 'woocommerce_min_password_strength', 'mihanwp_woocommerce_password' );
function mihanwp_woocommerce_password( $strength ) {
    return 3; 
}

همین. به همین سادگی. حالا اون عدد ۳ رو ببینید، کل ماجرا همون یه عدده.

معنی اعداد ۰ تا ۳ چیه؟

عددسطح سخت‌گیرییعنی چی
۳خیلی سخت (پیش‌فرض ووکامرس)ترکیب حروف بزرگ و کوچک، عدد و کاراکتر خاص
۲متوسطیه رمز معمولی و قابل قبول
۱سادهرمزهای کوتاه و راحت هم قبول می‌شن
۰خیلی خیلی سادهعملاً هر چیزی رو قبول می‌کنه

پیشنهاد من اینه که اگه فروشگاه عمومی دارید، عدد ۱ نقطه تعادل خوبیه. عدد صفر رو فقط وقتی برید که واقعاً می‌دونید دارید چیکار می‌کنید، چون دیگه هیچ سدی جلوی رمز 1 هم نیست.

جایگذاری کد

کد باید بره توی فایل functions.php قالبتون، یعنی همون فایل توابع. از مسیر پیشخوان ← نمایش ← ویرایشگر پرونده قالب می‌تونید پیداش کنید.

فایل functions.php
فایل functions.php

یا مستقیم از طریق هاست و FTP برید سراغش. کد رو معمولاً آخر فایل اضافه کنید و ذخیره بزنید.

ولی قبل از اینکه این کار رو بکنید، یه لحظه صبر کنید. یه بخش پایین‌تر هست که توضیح دادیم چرا این روش می‌تونه بعداً دردسرساز بشه. حتماً بخونیدش.

جداسازی حساسیت رمز برای مشتری و مدیر سایت

اینجا همون جاییه که اکثر آموزش‌ها ازش رد می‌شن ولی به نظر ما حیاتی‌ترین قسمت ماجراست.

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

قاعده‌ای که وب‌مسترهای حرفه‌ای رعایت می‌کنن اینه: راحتی برای مشتری، سخت‌گیری برای مدیر.

برای پیاده‌سازیش، کد رو با یه شرط ساده هوشمند می‌کنیم:

php

add_filter( 'woocommerce_min_password_strength', 'eram_secure_woocommerce_password' );
/**
 * کاهش حساسیت رمز عبور برای مشتریان و حفظ امنیت رمز مدیران سایت
 */
function eram_secure_woocommerce_password( $strength ) {
    // اگر کاربر دسترسی مدیریتی داشته باشد، بالاترین درجه سختی اعمال می‌شود
    if ( current_user_can( 'manage_options' ) ) {
        return 3; 
    }
    
    // برای مشتریان و کاربران عادی، حساسیت پایین می‌آید
    return 1; 
}

کاری که این کد می‌کنه ساده‌ست: اول چک می‌کنه کاربر فعلی دسترسی manage_options داره یا نه (این دسترسی مخصوص مدیر کله). اگه داشت، عدد ۳ برمی‌گردونه و ووکامرس هیچ کوتاه نمیاد. اگه نداشت، یعنی مشتری یا کاربر عادی بود، عدد ۱ برمی‌گردونه و کار رو راحت می‌کنه.

اگه قراره فقط یه کد از این مقاله بردارید، همین یکی رو بردارید.

پریدن کد با آپدیت قالب

حالا یه سناریو رو تصور کنید: کد رو گذاشتید، همه‌چی عالی کار می‌کنه، خیالتون راحته. یه ماه بعد برای قالبتون آپدیت میاد، شما هم دکمه بروزرسانی رو می‌زنید. و بعد می‌بینید تمام کدهایی که دستی اضافه کرده بودید پاک شدن. حساسیت رمز برگشته به همون حالت سخت قبلی و تا وقتی مشتری‌ها شکایت نکنن، اصلاً خبردار نمی‌شید.

این اتفاق واقعاً می‌افته و دلیلش هم اینه که آپدیت، فایل‌های قالب اصلی رو کامل جایگزین می‌کنه. دو تا راه حل دارید:

راه اول: قالب چایلد

یه قالب چایلد (Child Theme) بسازید و کدهاتون رو توی فایل functions.php اون بذارید. قالب چایلد موقع آپدیت دست‌نخورده می‌مونه. این روش استاندارد و اصولیه، مخصوصاً اگه قراره کدهای سفارشی دیگه‌ای هم اضافه کنید.

راه دوم: افزونه Code Snippets

اگه حوصله ساخت قالب چایلد رو ندارید یا کارتون با یکی دو تا کد راه می‌افته، افزونه Code Snippets بهترین گزینه‌ست. نصبش می‌کنید، کد رو داخلش پیست می‌کنید و فعالش می‌کنید. مزیت بزرگش اینه که اگه کدی مشکل داشته باشه، به جای اینکه سایتتون سفید بشه، خود افزونه غیرفعالش می‌کنه و پیام خطا می‌ده. برای کسی که خیلی با کد راحت نیست، این تور نجات ارزشش رو داره.

افزونه Code Snippets
افزونه Code Snippets

برداشتن متن راهنمای اضافه از فرم ثبت‌نام

یه نکته ظریف که بعد از اجرای کد باهاش روبه‌رو می‌شید: ووکامرس هنوز اون کادر راهنمای زیر فیلد رمز رو نشون می‌ده که می‌گه «رمز شما باید حداقل ۱۲ کاراکتر باشد و شامل حروف بزرگ و کوچک و اعداد باشد».

خب این تناقض کاربر رو گیج می‌کنه؛ از یه طرف رمز ساده‌ش قبول می‌شه، از طرف دیگه سایت داره بهش تذکر می‌ده. برای حل این موضوع می‌تونید با یه CSS ساده اون باکس راهنما رو مخفی کنید، یا از افزونه‌های تغییر متن (مثل String Locator) استفاده کنید و کلاً متنش رو عوض کنید. نتیجه‌ش یه فرم ثبت‌نام خلوت و تمیزه که کاربر رو سردرگم نمی‌کنه.

ورود با شماره موبایل به جای رمز عبور

بذارید یه پیشنهاد بهتون بدیم که شاید کلاً صورت‌مسئله رو پاک کنه.

اگه به سایت‌های بزرگ ایرانی نگاه کنید، می‌بینید خیلی‌هاشون اصلاً از رمز عبور استفاده نمی‌کنن. به جاش سیستمورود با پیامک (OTP) گذاشتن. کاربر شماره موبایلش رو می‌زنه، یه کد چهار یا پنج رقمی براش پیامک می‌شه، واردش می‌کنه و تمام. کمتر از ده ثانیه، بدون هیچ رمزی، بدون هیچ فراموشی.

مزیتش فقط سرعت نیست؛ امنیتش هم از رمز ساده بیشتره، چون کد یه‌بارمصرفه و بعد از چند دقیقه منقضی می‌شه. افزونه‌های زیادی برای این کار وجود داره (مثل میهن پنل) که به سرویس‌های پیامکی ایرانی وصل می‌شن.

میهن پنل
میهن پنل

تنها چیزی که باید حسابش رو بکنید، هزینه پنل پیامکیه. ولی اگه حجم فروشتون خوبه، این هزینه در برابر سبدهای خریدی که نجات می‌دید، اصلاً چیزی نیست.

حملات بروت فورس بعد از ساده کردن رمز

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

حمله بروت فورس یعنی یه ربات میاد و پشت سر هم رمزهای مختلف رو امتحان می‌کنه تا بالاخره یکی جواب بده. وقتی رمزهای کاربراتون ساده باشه، این ربات‌ها خیلی زود به جواب می‌رسن.

راه‌حل ساده‌ست: محدود کردن تعداد تلاش برای ورود. یه افزونه امنیتی مثل All In One WP Security یا Limit Login Attempts نصب کنید و قابلیت قفل ورود رو فعال کنید.

افزونه AIOS
افزونه AIOS

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

تنظیم قفل ورود
تنظیم قفل ورود

اگه بخوایم خلاصه بگیم: ساده کردن رمز بدون محدود کردن تلاش ورود، ریسک داره؛ ولی این دو تا با هم، ترکیب کاملاً منطقی و امنی می‌سازن.

تغییرات اعمال نشده؟

کد رو گذاشتید، عدد رو هم کردید صفر، ولی موقع تست می‌بینید ووکامرس هنوز ایراد می‌گیره و دکمه ثبت‌نام غیرفعاله؟ نگران نباشید، معمولاً یکی از این سه تاست:

۱. کش سایت. شایع‌ترین دلیل همینه. کش مرورگر رو خالی کنید، بعد برید سراغ افزونه کش سایتتون (رخش یا هرچی که دارید) و کش رو کامل پاک کنید. اگه از سرویس CDN مثل کلادفلر استفاده می‌کنید، کش اون رو هم فراموش نکنید.

پاک کردن کش در افزونه افزایش سرعت رخش
پاک کردن کش در افزونه افزایش سرعت رخش

۲. سیستم ثبت‌نام اختصاصی قالب. بعضی قالب‌ها (مخصوصاً قالب‌های فروشگاهی ایرانی) فرم ثبت‌نام خودشون رو دارن و از فرم پیش‌فرض ووکامرس استفاده نمی‌کنن. توی این حالت باید برید توی تنظیمات خود قالب و از اونجا حساسیت رمز رو تغییر بدید.

۳. تداخل جاوااسکریپت. گاهی اسکریپت‌های قالب یا افزونه‌های دیگه، اعتبارسنجی سمت مرورگر رو خودشون انجام می‌دن. برای تست، موقتاً یه قالب پیش‌فرض وردپرس فعال کنید و ببینید مشکل حل می‌شه یا نه. اگه حل شد، مقصر پیدا شده.

تست نهایی

خب، کد رو گذاشتید و ذخیره کردید. حالا باید مطمئن بشید واقعاً کار می‌کنه. برای این کار نمی‌تونید با اکانت مدیر خودتون تست کنید، چون لاگین هستید و شرایطتون فرق داره.

یه پنجره ناشناس (Incognito) توی مرورگرتون باز کنید، یا کلاً از یه مرورگر دیگه استفاده کنید. برید توی صفحه حساب کاربری سایتتون و با یه ایمیل فیک و یه رمز خیلی ساده مثل 12345 ثبت‌نام کنید.

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

سوالات متداول

ساده کردن رمز عبور به سئوی سایتم آسیب می‌زنه؟

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

بدون کدنویسی هم می‌شه این کار رو کرد؟

بله. افزونه‌های مدیریت فرم ثبت‌نام ووکامرس معمولاً این گزینه رو دارن. ولی راستش برای یه کار به این کوچیکی، نصب یه افزونه سنگین منطقی نیست. با Code Snippets و همون چند خط کد، خیلی سبک‌تر و تمیزتر جواب می‌گیرید.

این کد روی رمز کاربرهای قبلی هم اثر می‌ذاره؟

نه. رمزهای فعلی دست‌نخورده می‌مونن و کسی مجبور به تغییر نمی‌شه. این تنظیم فقط موقع ثبت‌نام جدید یا تغییر رمز اعمال می‌شه.

عدد صفر بهتره یا یک؟

عدد ۱ رو توصیه می‌کنیم. صفر یعنی هیچ سدی وجود نداره و کاربر می‌تونه رمزش رو بذاره 1 که این دیگه از سادگی گذشته و می‌شه بی‌احتیاطی.

جمع‌بندی

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

از کد شرطی استفاده کنید که برای مشتری‌ها راحت باشه ولی رمز خودتون به عنوان مدیر همچنان فولادین بمونه. کد رو توی قالب چایلد یا Code Snippets بذارید تا با آپدیت قالب از دست نره. و حتماً یه افزونه محدودکننده تلاش ورود نصب کنید تا اون در نیمه‌بازی که ساختید، قفل داشته باشه.

اگه فروشگاهتون حجم فروش خوبی داره، جدی پیشنهاد می‌کنیم سراغ ورود با پیامک هم برید، چون کلاً این دردسر رو از ریشه حل می‌کنه.

حالا برید کد رو بذارید و یه بار خودتون رو جای مشتری بذارید و مسیر ثبت‌نام رو تست کنید. اگه سوالی براتون پیش اومد یا جایی گیر کردید، توی کامنت‌ها بپرسید. شاد و سربلند باشید. 🙂

نظر شما در این مورد چیه؟

  1. U328130۲۹ شهریور ۱۴۰۲

    سلام خسته نباشید وقتتون بخیر عزیز من این کدو زدم اما هیچ اتفاقی نمی افته!
    از افزونه all in one security که شما معرفی کردید استفاده میکنم مشکل از اون نیست؟
    و مورد دوم اینکه نام کاربری در ثبت نام ووکامرس به اجباری حروف لاتینه و فارسی رو نمیشناسه روشی داره؟
    و مورد سوم اینکه تو قسمت خرید فیلد ایمیل اجباریه با هیچ افزونه ای هم حالت اختیاری نمیشه! راه حلی دارید؟
    ممنونم از شما

    • رضا راد۳۰ شهریور ۱۴۰۲

      سلام میتونه از اون باشه. غیرفعال و تست کنید ۲. خیر پیشنهاد نمیشه تغییرش بدید ساختار وردپرس رو بهم میریزه ۳. آموزش ویرایش تسویه حساب ووکامرس رو ببینید تو سایت

  2. U26695۱۹ دی ۱۳۹۹

    سلام من از افزونه digit استفاده می کنم و در تنظیمات این افزونه “فعال سازی رمز قوی هنگام ثبت نام ” غیرفعال کردم و کد فوق هم در فایل fuction.php قرار دادم همچنان برای ثبت نام رمزعبور قوی می خواد!
    راه حلی هست؟

    • رضا راد۲۰ دی ۱۳۹۹

      سلام اگر توی تنظیماتش گزینه‌ای نداره خیر.

  3. U26389۱۰ فروردین ۱۳۹۹

    سلام و تبریک سال نو
    1- همچین کدی در فانکشن قالب من نیست امکان دارد راهنمایی بیشتری کنید ؟

    2- چطور میتوانیم مانند ثبت نام شما تیک استفاده از رمز سست را در هنگام ثبت نام کاربر فعال کنیم ؟

    • تیم پشتیبانیتیم پشتیبانی۱۰ فروردین ۱۳۹۹

      باسلام و احترام
      ۱. این کد وجود ندارد شما باید اضافه کنید
      ۲. نسخه جدید وردپرس این قابلیت را دارد. مگر اینکه افزونه ای استفاده کرده باشید

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.