Как направих Wordpress (почти) невидим

alabalist

New Member
Здравейте,

В продължение на темата http://www.predpriemach.com/showthread.php?t=43610 пускам описание на всички промени, които направих в една инсталация на Wordpress сайт.

Целите на промените са следните:

1. Генерираният HTML код от сайта да е максимално чист.
2. На пръв поглед да не личи, че сайта е създаден с Wordpress.
3. Всички URL адреси, ползвани за администрация да са скрити и необичайни.
4. Обичайните автоматизирани скриптове да не показват, че това е Wordpress сайт.

Това, което НЯМА да постигнете с тези промени е:

1. Да защитите сайта си от истински кракери. Ако такъв прочете тази публикация е възможно да си повреди клавиатурата, когато напушилия го смях изригне и си разлее кафето по цялото бюро.
2. Да заблудите някой, че сайта не е правен на Wordpress.
3. Да не се налага да правите архиви или да обновявате версията на Wordpress.


Резултата от промените можете да видите на този сайт. Моля не обръщайте внимание на галерията, ужасна е и трябва да се смени, но за сега ще остане така.

И така, ето стъпка по стъпка какво направих. Пътищата и папките са различни от тези на сайта, посочен по-горе:

1. Свалих последната версия на WP

2. Инсталирах WP в под-папка, не в основната папка:
/public_html/t-site

3. При инсталацията смених всичко по подразбиране:
- нов префикс за таблиците: jhg_
- нов потребител за администратор: strw

4. Инсталирах Better WP Security
- Избрах да оправи всичко сам
- На User смених Admin User ID
- На Ban избрах User and Bot Blacklist: Enable Default Banned List
- На Hide избрах Enable Hide Backend и промених:
-- Login Slug: slg
-- Register Slug: rs
-- Admin Slug: kts
- На Dir промених wp-content на jkd-cnt
- На Login избрах Enable Login Limits и оставих всичко по подразбиране

5. След тези промени излязох и се включих на новия адрес:
http://www.my-site.com/t-site/kts

6. Инсталирах Preserved HTML Editor Markup

7. Настроих в Settings - Media:
- Store uploads in this folder: /home/my-site/public_html/smedia
- Full URL path to files: http://www.my-site.com/smedia

8. Настроих в Settings - Permalinks:
- Post name

9. Инсталирах .html on PAGES

10. Инсталирах WP Super Cache и промених във файла му wp-cache-phase1.php:

PHP:
//header( "WP-Super-Cache: Served supercache file from PHP" );
header( "Flamingo-C: Flamingo PHP file" );

//header( 'WP-Super-Cache: Served legacy cache file' );
header( 'Flamingo-C: Flamingo file' );

11. Свалих като стартова тема http://www.rootstheme.com/ и сериозно я модифицирах за мои нужди. Важното от нея е (може да се ползва и без самата тема, а директно във functions.php):
- Инициализацията от /lib/init.php
- Промяна на директните пътища към темата във файла /lib/rewrites.php
- Почистването на HTML кода от някои Headers във файла /lib/cleanup.php

12. Добавих във functions.php допълнително почистване на кода:

PHP:
//Remove X-Pingback from HTTP Header
//-----------------------------------
function remove_x_pingback($headers) {
    unset($headers['X-Pingback']);
    return $headers;
}

add_filter('wp_headers', 'remove_x_pingback');
//-----------------------------------

remove_action('wp_head','wp_enqueue_scripts');
remove_action('wp_head','feed_links_extra');
remove_action('wp_head','parent_post_rel_link');
remove_action('wp_head','start_post_rel_link');
remove_action('wp_head','adjacent_posts_rel_link');
remove_action('wp_head','locale_stylesheet');
remove_action('wp_head','noindex');
remove_action('wp_head','rel_canonical');

remove_action( 'wp_head', 'feed_links_extra', 3 ); // Display the links to the extra feeds such as category feeds
remove_action( 'wp_head', 'feed_links', 2 ); // Display the links to the general feeds: Post and Comment Feed
remove_action( 'wp_head', 'rsd_link' ); // Display the link to the Really Simple Discovery service endpoint, EditURI link
remove_action( 'wp_head', 'wlwmanifest_link' ); // Display the link to the Windows Live Writer manifest file.
remove_action( 'wp_head', 'index_rel_link' ); // index link
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); // prev link
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); // start link
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // Display relational links for the posts adjacent to the current post.
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'wp_generator' ); // Display the XHTML generator that is generated on the wp_head hook, WP version
remove_action( 'wp_head', 'feed_links', 3 );

13. Създадох няколко страници и тествах сайта без да е местен от под-папката на адрес http://www.my-site.com/t-site/

14. Настроих WP да работи в отделна папка по този пример - http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory:
- В Settings - General промених:
-- WordPress Address (URL): http://www.my-site.com/t-site
-- Site Address (URL): http://www.my-site.com
- След записа на промените копирах index.php и .htaccess в корена на сайта и промених index.php на require('./t-site/wp-blog-header.php');

15. Промених .htaccess, като добавих нова секция в началото:

Код:
# BEGIN Custom
Options -Indexes

RewriteEngine On

RewriteRule ^index\.html$ / [NC,R,L]
RewriteRule ^index\.htm$ / [NC,R,L]

# Stop wordpress username enumeration vulnerability
# -------------------------------------------------
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://www.my-site.com/? [L,R=301]
# -------------------------------------------------

# Redirect wp-login for non-logged users 
#-----------------------------------------------------
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteCond %{REQUEST_URI} ^.*wp-admin/? [NC,OR]
RewriteCond %{REQUEST_URI} ^.*wp-login\.php [NC]
RewriteRule . - [R=404,L,NC]
#-----------------------------------------------------

# END Custom

16. Възможно е при смяната папката на сайта да се генерират погрешни пренасочвания за CSS, IMG, JS и PLUGINS. Тогава към горните промени в .htaccess се добавя:

Код:
RewriteRule ^assets/css/(.*) /t-site/jkd-cnt/themes/mytheme/assets/css/$1 [QSA,L]
RewriteRule ^assets/js/(.*) /t-site/jkd-cnt/themes/mytheme/assets/js/$1 [QSA,L]
RewriteRule ^assets/img/(.*) /t-site/jkd-cnt/themes/mytheme/assets/img/$1 [QSA,L]
RewriteRule ^plugins/(.*) /t-site/jkd-cnt/plugins/$1 [QSA,L]

17. Накрая сложих в корена на сайта файл robots.txt с текст:

Код:
User-agent: *
 
Последно редактирано:

Горе