لطفا به دوستتون بگید که به کاربرا احترام بزاره و کل صفحه رو نبنده
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 یا کشف نفوذ:
منبع