امنیت در وردپرس – ورپرستان را ضد گلوگه کنید بخش اول

56

امنیت در وردپرس - ورپرستان را ضد گلوگه کنید بخش اول

در دنيای اینترنت امنيت از اهميت بسياری زیادی برخوردار است. گرچه متاسفانه اینطور به نظر ميرسد که این روزها ما به “امنيت” فقط و فقط به طور شفاهی اهميت ميدهيم و پای عمل که ميرسد از کنار خيلی مسائل به سادگی ميگذریم. افراد زیادی را ميبينم که از پایين بودن امنيت وردپرس حرف ميزنند و چون این وسط سایت هایشان یکی دو باری هم هک شده است از این شکایت میکنند که وردپرس ضعف های امنيتی زیادی دارد و برای همين آن را سيستم مدیریت محتوای مناسبی نميدانند. البته ميپذیریم که هر اسکریپيتی باگ های خاص خودش را دارد اما اینکه ما بخش مدیریت اسکریپتمان را برای همه باز بگذاریم و رمزمان از ۱۲۳۴۵ آن طرف تر نرود و تازه یوزرمان هم همان admin آشنای هميشگی باشد و عملا سایتمان را به امان خدا رها کرده باشيم و بعد که هک شدیم بيایيم و تقصير را گردن اسکریپت بياندازیم واقعا بی انصافی است. به نظر شخصی من و البته به نظر ميليون ها نفر دیگر در سراسر جهان، وردپرس واقعا قدرتمند است، خوب پس بيایيد این بار با هم ضد گلوله کردن وردپرسمان را یاد بگيریم. اینکه در این مقاله امنيت وردپرس را هدف ميگيرم دليلش نا امنی وردپرس نيست، بلکه دليلش این است که این اسکریپت طرفداران بسيار زیادی دارد و راحت ميتوان گفت از هر ۱۰ نفری که ميخواهند یک سایت راه بياندازند دست کم 6 نفرشان مطمئنند که باید وردپرس را انتخاب کنند.

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

در هنگام نصب:

اگر قرار به رعایت امنيت است، باید اولين آجر را نيز که همان نصب وردپرس است درست بگذاریم. حتما همه شنيده اید که شاعر ميگوید : “خشت اول چون نهد معمار کج، تا سریا ميرود دیوار کج” سریا هم ميدانم با ث است.
مي خواستم ببينم حواستان هست یا نه!!! خوب حالا ببينيم در زمان نصب چه نکاتی را باید رعایت کنيم:

1 – یوزر Admin نسازید!

در کدام قانونی نوشته شده که اسم مدیر باید حتما Admin باشد؟ کمی خلاق باشيد و در زمان نصب وردپرس برای مدیر یک نام کاربری عجيب و غریب در نظر بگيرید که در هيچ کجای دنيا شناخته شده نباشد. مثلا جای ادمين، نام G67BnMol0oOl1i را انتخاب کنيد. استفاده از نامی غير از نام Admin برای مدیر، باعث ميشود هکر ها مجبور شوند علاوه بر پسورد شما، نام کاربریتان را هم حدس بزنند. (البته ۱۰۰ درصد نه با مغزشان، بلکه با نرم افزار) و اگر شما رئيس سازمان CIA نباشيد، احتمالا شکستن چنين ترکيبی با یک کامپيوتر خانگی، اگر پسوردتان را هم در نظر بگيریم خيلی خيلی وقت ميخواهد! خيلی خيلی.…

اگر کار از کار گذشته و قبلا این یوزر را ساخته اید…

اشکالی ندارد، بگذارید با هم نامش را عوض کنيم. به روش پيچيده اش کاری ندارم ولی ساده ترین روش این است:
– یک مدیر جدید در وردپرستان ایجاد کنيد.
– با مدیر جدید لاگين کرده و مدیر قبلی را پاک کنيد
– حواستان باشد که نوشته های مدیر قبلی را پاک نکنيد و در هنگام پاک کردن مدیر قبلی، نوشته هایش را به نام کاربری جدیدتان نسبت دهيد.

2 – پيشوند جداول دیتابيس

در زمان نصب وقتی وردپرس از شما مي پرسد که مایليد پيشوند جداول دیتابيستان به چه صورت باشد. اگر شما در این بخش تغييری ایجاد نکنيد به طور پيشفرض، پيشوند جداول شما معادل wp_ خواهد بود. خوب اگر به دنبال امنيت هستيد در زمان نصب حتما پيشوند جداول را به پيشوند پيچيده تری تغيير دهيد چون وگرنه برای همه کاملا واضح است که پيشوند جداول یک سایت وردپرسی باید wp_ باشد. مثلا بيایيد و عبارت W9b0Om_ را به عنوان پيشوند جداول انتخاب کنيد.
حالا اگر نصب تمام شده و کار از کار گذشته شما دو راه پيش رو دارید. اول اینکه از طریق phpMyAdmin پيشوند ها را تغيير دهيد که من این روش را توصيه نميکنم و دوم اینکه منتظر قسمت دوم همين مقاله بمانيد تا آنجا بهترین روش را به شما اموزش دهم.

3 – نمایش عمومی نامتان را در وردپرس تغيير دهيد.

وردپرس به صورت پيشفرض نام کاربری شما ( که مدیر هستيد) را در نوشته هایتان به نمایش ميگذارد. این اصلا خوب نيست. یعنی حتی اگر شما یوزری به نام ادمين هم نداشته باشيد، یک نفر به سادگی ميتواند به نگاه به نویسنده ی پست هایتان بفهمد که نام کاربری شما چيست. راه حل این مشکل بسيار ساده است. کافی است در وردپرس به شناسنامه تان مراجعه کنيد و با وارد کردن نام و نام خانوادگيتان در این بخش، نمایش عمومی نامتان را از نام کاربریتان به نام / نام خانوادگی یا لقبتان تغيير دهيد.

نمایش عمومی نامتان را در وردپرس تغيير دهيد

راهنما : با ایستادن روی نامتان در نوار بالایی مدیریت وردپرس، ميتوانيد به شناسنامه تان دسترسی داشته باشيد.

4 – نگذراید وردپرس لينکی به یوزر نيم شما در نوشته ها و به طور کلی طرف کاربران به نمایش بگذارد.

اگر فکر ميکنيد با انجام مرحله ی شماره 3 کارتان به اتمام رسيده در اشتباهيد. وردپرس عزیز لطف ميکند و نام نویسنده را به یوزرش لينک ميکند. البته این مسئله ممکن است در قالب های مختلف متفاوت باشد اما شما در این زمينه دو انتخاب دارید. اول اینکه با دست کاری قالبتان به طور کامل لينک نویسنده را حذف کنيد. در وبلاگهایی که دارای یک نویسنده هستند این مسئله چندان هم مهم نيست اما اگر بيش از یک نویسنده داشته باشيد، این مسئله کارایی بلاگتان را از بين خواهد برد. بنابراین برای حل این مشکل به شيوه ی زیر عمل کنيد:

– افزونه ی Edit Author Slug را روی وردپرستان نصب کنيد.
– به شناسنامه تان در وردپرس مراجعه کنيد و در بخش edit author slug لينک جدیدی به یوزرتان اختصاص دهيد.
به این شکل دیگر نام کاربری واقعی شما در لينک نویسنده به نمایش در نخواهد آمد و کسی به این سادگی ها قادر نخواهد بود نام کاربری واقعی شما را پيدا کند.

5 – روی فولدر ادمين پسورد بگذارید.

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

– یک نام کاربری و یک کلمه ی عبور مناسب که علاوه بر دارا بودن امنيت مناسب، فقط و فقط از حروف و اعداد (بزرگ و کوچک مهم نيست) تشکيل شده باشد برای خود انتخاب کنيد.
– روی اینجا کليک کنيد و در صفحه ای که برایتان باز ميشود، در قسمت یوزر نيم، نام کاربری ای که انتخاب کرده اید و در قسمت پسورد، کلمه ی رمزی که انتخاب کرده اید را وارد کرده و سپس روی دکمه submit کليک کنيد. به سایر تنظيمات کاری نداشته باشيد چون ما قصد نداریم از همه ی کد هایی که این سایت به ما ميدهد استفاده کنيم و فقط و فقط به یوزر نيم و پسوردی که هش ميکند احتياج داریم.
– محتوایی که این سایت در بخش .htpasswd به شما تحویل ميدهد را در ذخيره کنيد.
– در هاست خود به یک فولدر قبل ازpublic_html بروید. (در cpanel همان Home و در دایرکت ادمين یک فولدر پس از فولدر نام دامنه) در این جا یک فولدر با یک نام عجيب و غریب بسازید. منظورم از عجيب و غریب چيزی است هر کسی نتواند حدس بزند ولی لازم نيست از علامات و … استفاده کنيد.
– در این فولدر یک فایل بسازید با نام .htpasswd و آنچه در ابتدای مراحل از سایت ذکر شده دریافت کرده بودید را در این فایل قرار دهید. (نقطه ی ابتدای نام فایل را فراموش نکنید)
– حالا به فولدر ادمين وردپرس بروید (wp-admin). در این فولدر یک فایل با نام .htaccess ایجاد کنيد و کد زیر را البته با تغيرات لازم در آن قرار دهيد :

در کدی که در بالا برایتان نوشتم لازم است به جای user نام کاربری خودتان در هاستی که دارید را قرار دهيد و بجای samplefolder نام فولدری که ساختيد و فایل .htpasswd را در آن قرار دادید. (البته توجه کنيد شاید مسير شما بجای home از مسير دیگری آغاز شود، مثلا home3، home2 و ….) قسمت آخر را هم به هيچ عنوان فراموش نکنيد چون اگر دسترسی به فایل admin-ajax.php را مجاز نکنيد بعدا در پنل مدیریت چيزی جز آشفتگی نسيبتان نخواهد شد.
– خوب حالا اگر این مراحل را درست طی کرده باشيد در زمان ورود به مدیریت باید با یک پيام روبرو شوید که از شما تقاضای نام کاربری و پسورد ميکند. اینجا کافی است نام کاربری و پسوردی که به تازگی برای خود انتخاب کرده اید را وارد کنيد تا بتوانيد به صفحه ی ورود به بخش مدیریت بروید. مثل شکل زیر:

گذاشتن پسورد روی فولدر ادمین وردپرس

6 – wp-config.php جایش اینجا نيست!

خواهشا کمی بيشتر به فکر فایل کانفيگتان باشيد. اگر تا امروز آن را امن نکرده اید بهتر است هر چه سریع تر به سراغش بروید و آن را به یک فولدر بالا تر از public_html سایتتان انتقال دهيد. حتی الامکان دسترسی اش را هم روی ۴۴۴ بگذارید که خيالتان حسابی راحت باشد. خوشبختانه اینجا کارمان پيچيدگی زمانی که ميخواهيم جای فایل کانفيگ را در جوملا عوض کنيم را ندارد. کافی است فایل کانفيگ به یک فولدر بالاتر از public_html سایتتان انتقال پيدا کند و پس از آن بقيه ی کارها بر عهده ی خود وردپرس است که جای این فایل را پيدا کند.

چرا سطح دسترسی فایل .htaccess را عوض نميکنيم؟

اگر به دنبال ضد گلوله به معنای واقعی ميگردید که خوب باید دسترسی این فایل را هم روی ۴۴۴ بگذارید که نوشتن روی آن به این سادگی ها امکان پذیر نباشد اما در نظر بگيرید که این کار ممکن است در کارکرد بعضی پلاگين های امنيتی و یا پلاگين سئو که در وردپرستان نصب کرده اید تداخل ایجاد کند. تصميم با خودتان است!

7 – به روز باشيد

هسته وردپرس و کلیه ی افزونه ها و قالب های آن را همیشه به روز نگه دارید. قبول دارم که گاهی به روز کردن افزونه های وردپرس کمی تا قسمتی پشيمانی به بار می آورد اما به طور کلی باید هميشه افزونه ها و پوسته هایتان را آپدیت کنید. چرایش هم کاملا واضح است. افزونه ها و پوسته های قدیمی (و همینطور نسخه های قدیمی وردپرس) ممکن است پر از باگ های امنيتی باشند و سایت شما را در برابر هکر ها آسيب پذیر کنند. اگر هم نگران هستيد که به روز رسانی برخی از افزونه ها ممکن است سایت شما را به هم بریزد و یا یک افزونه ممکن است با ورژن وردپرس شما سازگاری نداشته باشد کافی است برای جلوگيری از هرگونه دردسر های بعدی، هميشه یک نصب وردپرس کاملا یکسان با سایتتان به صورت لوکال داشته باشيد که همه ی افزونه ها را ابتدا به صورت لوکال روی آن تست کنيد و بعد در صورتی که تغييرات مورد نظر در سایتتان ایرادی ایجاد نکرد، آنها را در محيط اینترنت اجرایی کنيد.

8 – حواستان به پوسته های خبيث باشد!

واقعيت این است که در ۹۹ درصد موارد وقتی افراد یک سایت وردپرسی را استارت ميزنند، برای شروع کار خود از پوسته های رایگان استفاده ميکنند و از آنجایی که گربه هم محض رضای خدا موش نميگيرد، به سادگی ميتوان گفت که اگر در گوگل به دنبال پوسته های رایگان بگردید شاید از هر ۱۰ پوسته ۷ تای آنها یک جای کارشان ميلنگد و اکثرشان پر از کد های base64 هستند. کد های base64 هميشه مخرب نيستند ولی از طرفی هم اگر چيزی برای مخفی کردن نداریم پس چه لزومی دارد که آن را کد کنيم؟ وقتی کدش ميکنيم یعنی یک جای کار ميلنگد. برای این که پوسته ی خود را محک بزنيد و از سلامت آن اطمينان حاصل کنيد کافی است افزونه ی Theme Authenticity Checker را روی وردپرستان نصب کنيد. این افزونه به شما اجازه ميدهد تک تک پوسته هایی که روی سایتتان نصب کرده اید را به دنبال کد های مخرب شناخته شده جستجو کنيد و حتی در مواردی در پوسته ها بهبود ایجاد کنيد.

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

9 – به وردپرستان نمک بزنيد…

باور کنيد شوخی نميکنم. وردپرس بدون نمک مثل سالاد بدون سس است! تعریف salt در کانفيگ وردپرستان به شما کمک ميکند که سایت خود را در برابر حملات هکر ها چندین برابر امن تر کنيد. salt ای که شما تعریف ميکنيد در رمز گذاری کليه ی ارتباطات، ذخيره ی فایل ها و کوکی های ذخيره شده روی سيستم های کاربران به کار خواهد رفت و همه چيز را امن تر خواهد نمود. در عين حال گاهی هم وردپرس salt ای که شما تعریف کرده اید را با یک استرینگ طولانی دیگر در هم می آميزد و با ترکيب این دو، به بهترین شکل اطلاعات محرمانه ی شما را رمزگذاری ميکند تا دسترسی به آنها به این سادگی ها ممکن نشود. حالا این salt را کجا تعریف کنيم؟
– به فایل کانفيگ وردپرستان مراجعه کنيد (wp-config.php)
– در این فایل به دنبال کد های زیر بگردید :

– روی این لينک کليک کنيد و محتوای ایجاد شده را کپی نمایيد.
– کدی که کپی کرده اید را در فایل کانفيگ وردپرس جایگزین کد های قبلی کنيد و تنظيمات را ذخيره نمایيد.

10 – پلاگين های اجرای PHP

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

11 – HTML را در نظرات غير فعال کنيد.

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

– در بخش مدیریت وردپرس از منوی “نمایش” زیر منوی “ویرایشگر” را انتخاب کنيد تا به محل ویرایش فایل های قالبتان هدایت شوید.
– فایل functions.php را برای ویرایش انتخاب نمایيد و کد زیر را به آن اضافه کنيد :

– تغييرات را در فایل مورد نظر ذخيره کنيد.
خوب حالا هر کسی که در نظرات شما HTML ارسال کند، نتيجه اش نمایش کد های درهم و برهم HTML خواهد بود و نه اجرا و تفسير این کد ها.

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

برای مطالعه بخش دوم مقاله روی اینجا کلیک کنید

دسترسی آسان به این مطلب لینک کوتاه :
شاید از اینها هم خوشتان بیاید!
56 دیدگاه
  1. siavash می گوید

    عالی بود مرسی

    1. MrCode می گوید

      خواهش میکنم. خوشحالم که براتون مفید بود. 🙂

  2. ali می گوید

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

    1. MrCode می گوید

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

  3. ali می گوید

    سلام من هرچی گفتی رو انجام دادم ولی باز هم همونطوریه میشه بیای و درستش کنی

  4. جوادی محب می گوید

    با سلام
    بسیار کاربردی و عالی بود ممنونم از شما
    ببخشید یه سوال ، کد باکسی که برای نمایش کد ها استفاده کردید افزونه خاصی هست خیلی دنبالشم ! اگه میشه بطور کامل راهنمایی کنید

    ممنونم

    1. MrCode می گوید

      سلام. شما لطف دارید.
      برای باکس کد ها بنده از افزونه ی Crayon Syntax Highlighter استفاده میکنم. میتونید از لینک زیر دانلود کنید، هیچ کانفیگ خاصی هم نمیخواد :
      https://wordpress.org/plugins/crayon-syntax-highlighter
      بعد از نصب دکمه مربوط به این افزونه به بالای ویرایشگر نوشته ها اضافه میشه که میتونید ازش استفاده کنید.

  5. ali می گوید

    مرسي از مطلبت!
    من ميخام كه در بخش نطرات مخاطبان در سايت:ساعت،تاريخ ونام نظردهندگان مخفي شود ! راهنمايي ميخام با تشكر

  6. علیرضا می گوید

    سلام.اول ممنون از آموزش
    بعدش یه سوال در قسمت روی فولدر ادمین پسورد بگذارید
    وقتی گذاشتم باکس رمز ورود برای بازدید کننده های سایت هم میاد چی کار کنم که این طور نشه؟

    1. MrCode می گوید

      سلام. ممنون از شما.
      اگر مراحل رو صحیح انجام بدید این اتفاق نمی افته. یکی از بخش ها رو اشتباه انجام دادید و احتمالا محل قرارگیری دستورات htaccess تون ایراد داره.

  7. ali می گوید

    سلام خسته نباشید

    من داخل فایل functions.php کد های قرار داده شده را گذاشتم ولی یه سری کد بالای صفحه مدیریت و همچنین بالای صفحه سایت میاد…
    علت چیست؟؟؟
    کد ها را در کدام قسمت functions.php قرار بدم؟؟؟

    1. MrCode می گوید

      سلام
      اگر کار رو صحیح انجام بدید چیزی نباید بالای سایت بیاد!
      در ضمن توجه کنید که کدهای موجود در این آموزش هر کدام برای قرار گیری در فایل خاصی هستند. بنابراین توجه کنید که گفته شده در کجا قرارشون بدید. (بعضی ها مال فایل wp-config.php هستن و بعضی مربوط به functions.php و بعضی هم htaccess)

  8. ali.sh می گوید

    سلام آموزش بسیار علی بود بهره مند شدیم
    اینجا تنها مشکلی که هست متاسفانه پسورد گذاری روی فولدر های ساب دامین تاثیر به درستی اجرا نمیشه به طور مثال اگه روی پوشه test موجود در forum.site.ir/test پسورد بزاریم وقتی وارد forum.site.ir شویم ازمون پسورد میخواد یعنی تاثیر میزاره روی کل ساب دامین نه پوشه test …
    +
    دوستان عزیز توجه کنند برای امنیت فایل config و خود htaccess این کد هارو حتما در بزارند:

    <files ".htaccess">
    order allow,deny
    deny from all
    </files>

    <files wp-config.php>
    order allow,deny
    deny from all
    </files>

    متشکرم از سایت سطح عالیتون

    1. MrCode می گوید

      سلام

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

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

  9. امیر می گوید

    سلام…ممنون از مطالب جالبتون

    در داشبورد این برنامه برای من پیغام خطای زیر رو داده:
    wp-content/plugins = 755 0755 WARNING

    باید چی کار کنم که حل بشه؟

    1. MrCode می گوید

      سلام
      کدوم برنامه!؟

      1. امیر می گوید

        عذر میخوام نگفتم

        iThemes Security

      2. MrCode می گوید

        این باگ مربوط به نسخه 4.5.8 هست.
        برای حلش از این لینک استفاده کنید :
        https://wordpress.org/support/topic/problem-with-plugins-7

        یا افزونه رو به آخرین نسخه اپدیت کنید. الان من روی نسخه 4.6.10 مشکلی مشاهده نمیکنم.

  10. امیر می گوید

    آقا ممنون از راهنماییت حل شد

    1. MrCode می گوید

      خواهش میکنم. موفق باشید

  11. Sanaz می گوید

    سلام
    ممنو از مطلب خوبتون
    من یه مشکل برام پیش اومده
    از وقتی مورد 9 رو انجام دادم دیگه نمیتونم وارد پنل ورد پرس بشم
    وقتی دوباره نمکارو ورداشتم درست شد
    به نظرتو علتش چیه؟

    1. MrCode می گوید

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

  12. mehdi می گوید

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

    1. MrCode می گوید

      سلام
      تا جایی که من اطلاع دارم خیر.

  13. رامین می گوید

    با سلام.
    آقا صفحه لاگین و عضویت من یه یوزر و پسورد اضافه میخاد. این باعث شده کاربرا اصلا از خیر عضویت بگزرن. اینو چجوری بردارم. به صفحه عضویت من مراجعه کنید متوجه منظورم میشید. هاستمم رایگانه بهم جواب نمیدن. هرچی هست از هاسته. آدرس :
    http://zigma.cf/wp-login.php?action=register

    1. MrCode می گوید

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

  14. tablokar می گوید

    عالی بود – دستتون درد نکنه – عالی بود

  15. imaniy می گوید

    من تو فانکشن قالب هر کردی میزارم ارور میده برای مثال به اولش و یا به اخرش یه عکس میزاری ببینم باید کجا بزارم؟

  16. فرهاد می گوید

    عالی بود ممنون …

  17. hh می گوید

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

  18. علیرضا می گوید

    سلام …خیلی خیلی ممنون ، چند روز بود دنبال این افزونه Edit Author Slug میگشتم … و هیچ سایتی هیچ وقت به این چیز اشاره نکرده بود

    1. MrCode می گوید

      از اینکه این آموزش تونسته به شما کمک کنه خوشحالم.

  19. یاسر می گوید

    سلام
    سوال من مربوط به بخش 5 هست
    توی سی پانل یک فولدر در شاخه home ساختم ولی توی اون نمی تونم یک فایل بسازم که اولش نقطه باشه مثلا .htpass ساخته نمیشه . خوب اگه نقطه اولش رو بردارم ساخته می شه.

    1. MrCode می گوید

      سلام
      من فکر میکنم شما نمایش فایل های مخفی رو در فایل منیجرتون فعال نکردید. برای همین وقتی فایلی که نقطه داره رو میسازید دیگه نمیبینیدش. نمایش فایل های hidden یا اصطلاحا dot file ها رو میتونید توی تنظیمات فایل منیجرتون فعال کنید تا مشکلتون حل بشه.

  20. محمد رضا می گوید

    با این که مطلب رو چند سال پیش نوشتید اما کامل مفید و بدور از تکلف و سختی بود.
    یه سوال : مورد 5 برای ورود اشخاص دیگه به wp-admin از طریق آدرس سایت هستش
    برای ورود از مسیر wp-login.php اگه بخوام کسی وارد نشه و نتونه این صفحه رو ببینه چی ؟

    1. MrCode می گوید

      ممنون شما.
      در مورد سوالتون، شما علاوه بر انجام مورد 5، بخش "ادمین را از دید دشمن دور کنید" در قسمت دوم مقاله رو هم دنبال کنید تا دیگه دسترسی به آدرس مورد نظرتون میسر نباشه :
      https://mrcode.ir/?p=753

  21. رضا می گوید

    سلام خسته نباشید
    چطور باید جای فایل wp-config.php رو عوض کنیم؟

    1. MrCode می گوید

      سلام
      توی بخش ششم آموزش توضیح دادیم.

  22. رضا می گوید

    سلام ممنون از مطالب خوبتون .برای تغییر سطح دسترسی باید از افزونه استفاده کنیم؟

  23. سامیار می گوید

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

    1. MrCode می گوید

      سلام
      باید ببینید در صفحه مورد نظر چه ریسورسی از ناحیه مدیریت داره فراخوانی میشه. (میتونید سورس صفحه رو نگاه کنید) و بعد دسترسی به اون ریسورس رو بدون رمز مجاز کنید. به عنوان مثال اگر دقت کنید در کدی که برای گذاشتن رمز روی ناحیه مدیریت در اختیارتون قرار دادیم در خط 9 تا 13، دسترسی به فایل admin-ajax.php رو بدون رمز مجاز کردیم. همین کار رو باید برای فایل دیگه ای که در صفحه مورد نظرتون داره از ناحیه مدیریت فراخوانی میشه انجام بدید تا مشکلتون حل بشه.

  24. ilia می گوید

    سلام خدا قوت
    1-ممکنه مقاله ای هم درباره امنیت فروشگاه هایی که در وردپرس ساخته می شنوند بذارید
    2-همه ی قالب های رایگان خبیث هستند ؟ من از قالب های سایت شما استفاده می کنم.قالب فوق العاده کاربری ای هست
    3-چطور می تونم سایز تایتل اصلی سایت رو تغییر بدم ؟ مثلا در پوسته ی بازار شاپ عنوان "بازار شاپ "خیلی بزرگه و باعث به هم ریختگی هدر می شود

    1. MrCode می گوید

      سلام و ممنون از شما

      1 – آموزشی که در مورد امنیت قرار دادیم رو روی فروشگاه های وردپرسی هم میتونید استفاده کنید.
      2 – نه اینطور نیست. مثلا تو خود سایت wordpress.org شما میتونید قالب های رایگان خیلی خوبی پیدا کنید. یا بعضی از سایت هایی که قالب تجاری میسازن، کارشون اینه که یه نسخه رایگان با امکانات کمتر از قالب اصلیشون هم ارائه بدن که کاربر رو به سمت خودشون جذب کنن. بنابراین اینطور نیست که همیشه قالب های رایگان غیر قابل اعتماد باشن. ولی داریم سایت خارجی که نمیخوام اشاره هم بهش بکنم که کارش اینه که آخرین نسخه های قالب های پولی رو برای دانلود قرار میده و تک تک قالب ها و افزونه هاش رو از قصد خودش آلوده میکنه … حالا اینکه دقیقا هدفش چیه خدا میدونه ولی به هر حال باید خیلی مراقب بود.
      3 – البته این سوالتون جاش یه جای دیگست ولی خوب. اگر بازارشاپ رو از سایت ما دانلود کردید، اندازه عنوان اصلی سایت توی فایل rtl.css خط 184 قابل تغییره. کافیه font-size رو به اندازه دلخواه تغییر بدید.

  25. عسگری می گوید

    سلام و ممنون از مطلب عالی شما

  26. شاهین می گوید

    هنگام ورود به بخش ادمین سایتم هیچ سوالی پرسیده نمیشه و فقط قسمت آدرس سایت میزنه :
    www.domain.com/not found
    به نظرتون مشکل از کجاست؟

    1. MrCode می گوید

      اگر آدرس ورود به ناحیه مدیریت رو با افزونه ithemes security عوض کرده باشید و سعی کنید با آدرس قدیمی وارد بخش مدیریت بشید با not found مواجه میشید.

      1. شاهین می گوید

        من از کجا باید متوجه بشم که افزونه ای که گفتین چطور تغییر داده؟

      2. شاهین می گوید

        موفق شدم پلاگین رو دور بزنم… اما آدرسی که داخل پلاگین زدم گویا کار نمیکنه
        آخه هر چی اون آدرس رو میزنم نمیاد بالا برای پسورد

      3. MrCode می گوید

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

      4. شاهین می گوید

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

      5. MrCode می گوید

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

  27. mahsa می گوید

    سلام آموزشتون عالی هست
    فقط یک سوال اون قسمت 5 – روی فولدر ادمین پسورد بگذارید. اصلا نگفتید با اون کد هش شده که بهمون داده چیکار کنیم و اصلا جایی تو این قسمت از اون یوزر و پسورد استفاده نکریدم پس چجوری ازمون رمز و یوزر میخواد و از کجا میاد؟
    بنظرم یه قسمتی که اون یوزر و پسورد هش شده رو باید کپی کنیم و بذاریم رو جا انداختید لطفا راهنمایی کنید
    مرسی

    1. MrCode می گوید

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

  28. امین می گوید

    سلام
    در موارد 4 و 5 گفتید به یک فایل بالاتر از public_html بروید متاسفانه در خود دایرکتوری اطلاعات وردپرسی ریخته شده.
    تنها راهش اینه که همه را پاک کنم؟
    راه دیگری نیست؟

  29. حامد می گوید

    با سلام و ممنون از آموزش خوبتون
    روی فولدر ادمین پسورد گذاشتم اما چون سایت فروشگاهی داریم هنگام ثبت سفارش (برای نمایش فرم ثبت نام و آدرس و …) مجدد پاپ آپ لاگین گذاشته شده میاد برای مشتری ها
    چکار باید بکنیم که این فقط برای لاگین شدن خود ادمین ورد پرس نمایش داده بشه؟

  30. علیرضا می گوید

    سلام خسته نباشید
    در بخش 6
    "یک فولدر بالا تر از public_html سایتتان انتقال دهید"
    منظور از یک فولدر بالاتر چیه؟ یعنی در مسیر home(خارج از public html؟)
    باتشکر

ارسال پاسخ

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