Secure WordPress In Advanced
سلام
یکی از دوستان بنده یه مقاله بسیار خوب و کامل از نحوه ی امن سازی wordpress نوشته که بنده دیدم خالی از لطف نیست واستون بزارم ولی بنا به دلیلی که ایشون نخواستن بدون ذکر منبع قرار داده بشه لینک رو واستون گزاشتم توصیه میکنم حتما بخونید.
لینک مقاله
پاسخ : Secure WordPress In Advanced
شما به عنوان یک عضو وارد نشدهاید و یا اجازه دسترسی به این صفحه را ندارید. این خطا ممکن است به خاطر یکی از دلایل زیر باشد:
- شما هنوز به عنوان یک عضو وارد نشدهاید و یا ثبت نام نکردهاید. لطفاً از فرم پایین این صفحه برای ورود استفاده کنید.
- شما اجازه دسترسی به این صفحه را ندارید. آیا میخواهید به قسمتهایی که تنها مدیران دسترسی به آن را دارند و یا قسمتهایی که به شما اختصاص ندارد وارد شوید؟ لطفاً قوانین را مطالعه نمایید.
- حساب کاربری شما ممکن است توسط مدیر غیرفعال شده باشد و یا هنوز فعال نشده باشد.
- شما به جای استفاده از لینک یا فرم مناسب به طور مستقیم به این صفحه دسترسی پیدا کردهاید.
پاسخ : Secure WordPress In Advanced
فکر کنم باید ثبت نام کنید چون این اخطار رجیستر نکردنه
پاسخ : Secure WordPress In Advanced
از حوصله من که خارجه عضو بشم
معمولا میان دسترسی میهمان به لینک یا عکسها رو محدود میکنن نه کل صفحه ....
پاسخ : Secure WordPress In Advanced
لطفا به دوستتون بگید که به کاربرا احترام بزاره و کل صفحه رو نبنده
1-محدود کردن دسترسی به پنل ادمین با استفاده از ای پی استاتیک هستش برای این منظور اگه ای پی استاتیک ندارید میتونید با یه هزینه ی ماهانه کم ای پی تونو استاتیک کنید خوب در فایل .htaccess خود که حتما باید در پوشه ی ادمین باشه نه روت کد زیر رو جایگزین کنید
کد:
<LIMIT GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx //( your static IP)
</LIMIT>
2-خوب حالا همانطور که میدونید فایل ادمین wp-login.php در شاخه ی روت هستش و ناچار هستیم از کد زیر استفاده کنیم
کد:
<Files wp-login.php>
Order Deny,Allow
Deny from All
Allow from x.x.x.x //( your static IP)
</Files>
3-برای جلوگیری از حملات xxs و xst و حملات مبتنی بر کوکی ***ی کدهای زیر رو به فایل .htaccess اضافه کنید.
کد:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
4-محدود کردن دسترسی کاربرانی که از ***** استفاده میکنند و قصد گزاشتن کامنت رو دارند از قطعه کد زیر استفاده کنید.
کد:
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP:VIA}%{HTTP:FORWARDED}%{HTTP:USERAGENT_VIA}%{HTTP:X_FORWARDED_FOR}%{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:X*****_CONNECTION}%{HTTP:HTTP_PC_REMOTE_ADDR}%{HTTP:HTTP_CLIENT_IP} !^$
RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]
RewriteRule .* - [F,NS,L]
5-اعمال موارد امنیتی زیر در فایل php.ini البته لازم به ذکره ممکن هستش در برخی از هاستینگ های شیر شده امکان همچین کاری نباشه.
کد:
display_errors = Off //safe to disable on live site
register_globals = Off //off by default but a good reminder to check
expose_php = Off //safe to disable
allow_url_fopen = Off //might break something
allow_url_include = Off //might break something
log_errors = On //logging errors is always a good idea if you check them
error_log = /var/log/phperror.log
enable_dl = Off //might break something
disable_functions="popen,exec,system,passthru,proc_open,shell_exec,show_source,php
file_uploads = Off //will most likely break something
6-حتما مطمئن بشید که suhosin در سرورتون و برای php شما نصب و فعال باشه همانطور که میدانید این یه مورد امنیتی هستش و از اجرای برخی اکسبلویت ها جلوگیری میکنه با قرار دادن کد php زیر در یه فایل php و اجرای ان از url سایت مطمون بشید که نصب هستش.
7-پاک کردن خروجی های هدر وردپرس: خوب میدونید که وردپرس چیزهای زیادی رو میتونه واسه مقاصد خواص به هدرش اضافه کنه که برای موارد امنیتی ما توصیه میکنیم از کدهای زیر استفاده بشه ولی دقت کنید که استفاده از کدهای زیر ویتونه بعضی از خواص مثل Rss رو از کار بندازه شما میتونید هر قسمتش رو نخواستید کامنت کنید.
کد:
// remove junk from head
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
8-مخفی کردن /wp-content/ با کد php زیر:
کد:
<?php
// rewrite /wp-content/themes/theme-name/css/ to /css/
// rewrite /wp-content/themes/theme-name/js/ to /js/
// rewrite /wp-content/themes/theme-name/img/ to /img/
// rewrite /wp-content/plugins/ to /plugins/
function roots_flush_rewrites() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function roots_add_rewrites($content) {
$theme_name = next(explode('/themes/', get_stylesheet_directory()));
global $wp_rewrite;
$roots_new_non_wp_rules = array(
'css/(.*)' => 'wp-content/themes/'. $theme_name . '/css/$1',
'js/(.*)' => 'wp-content/themes/'. $theme_name . '/js/$1',
'img/(.*)' => 'wp-content/themes/'. $theme_name . '/img/$1',
'plugins/(.*)' => 'wp-content/plugins/$1'
);
$wp_rewrite->non_wp_rules += $roots_new_non_wp_rules;
}
add_action('admin_init', 'roots_flush_rewrites');
function roots_clean_assets($content) {
$theme_name = next(explode('/themes/', $content));
$current_path = '/wp-content/themes/' . $theme_name;
$new_path = '';
$content = str_replace($current_path, $new_path, $content);
return $content;
}
function roots_clean_plugins($content) {
$current_path = '/wp-content/plugins';
$new_path = '/plugins';
$content = str_replace($current_path, $new_path, $content);
return $content;
}
add_action('generate_rewrite_rules', 'roots_add_rewrites');
if (!is_admin()) {
add_filter('plugins_url', 'roots_clean_plugins');
add_filter('bloginfo', 'roots_clean_assets');
add_filter('stylesheet_directory_uri', 'roots_clean_assets');
add_filter('template_directory_uri', 'roots_clean_assets');
add_filter('script_loader_src', 'roots_clean_plugins');
add_filter('style_loader_src', 'roots_clean_plugins');
?>
9-پاک کردن دیتابیس test بعد از نصب mysql با دستور زیر در sql query:
کد:
mysql> DROP DATABASE test;
10-پاک کردن اطلاعات ورژن هدر قالب و پلاگین ها با قطعه کد زیر:
کد:
header_remove('x-powered-by', guess);
11-نصب نرم افزار PHP intrusion detection یا کشف نفوذ:
منبع