Шаги, которые нужно предпринять, чтобы скрыть факт, что сайт использует WordPress?

У меня есть веб-сайт, для которого мы стараемся быть осторожным в том, что мы используем WordPress. Какие шаги мы можем предпринять, чтобы сделать его менее очевидным?

132 голоса | спросил Casebash 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 08 Sep 2010 10:42:29 +0400 2010, 10:42:29

13 ответов


123

Самые большие предложения WordPress находятся между <head> </head>.

Пример вывода содержимого заголовка WordPress с помощью темы Twentyten и как удалить:

<link rel="profile" href="http://gmpg.org/xfn/11" /> 

Удалить прямо из header.php

 <link rel="stylesheet" type="text/css" media="all" href="http://example.com/wp-content/themes/twentyten/style.css" /> 

Скройте WordPress, вызвав таблицу стилей из другого места и изменив каталог wp-content. WordPress требует, чтобы ваша тема включала в себя некоторые основные сведения в верхней части style.css (style.css должен находиться в корневом каталоге тем). Вам нужно будет создать альтернативный CSS и вызвать его из головы. WordPress не требует, чтобы вы использовали темы style.css, это требует только того, чтобы он находился в каталоге тем.

Удалить прямо из header.php

<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Feed" href="http://example.com/feed/" /> 
<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Comments Feed" href="http://example.com/comments/feed/" />    
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" /> 
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='Example Blog' href='http://example.com/' /> 
<meta name="generator" content="WordPress 3.1-alpha" /> 

Чтобы удалить эти дополнительные ссылки, вы можете добавить фильтр в functions.php

// remove junk from head
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);

Вы можете изменить свой каталог плагина и свой каталог wp-content в файле wp-config.php, но у вас могут возникнуть проблемы, если ваша тема или любые плагины не будут использовать надлежащий метод для вызова файлов.

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content' );

Установите WP_CONTENT_URL в полный URI этого каталога (без конечной косой черты), например

define( 'WP_CONTENT_URL', 'http://example/new-wp-content');

Необязательный Установите WP_PLUGIN_DIR на полный локальный путь этого каталога (без конечной косой черты), например

define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content/new-plugins' );

Установите WP_PLUGIN_URL в полный URI этого каталога (без конечной косой черты), например

define( 'WP_PLUGIN_URL', 'http://example/new-wp-content/new-plugins');

PLUGINS

Помните, что некоторые плагины, такие как Akismat, All in One, W3-Total-Cache, Super Cache и многие другие, добавляют комментарии к выходу HTML. Большинство из них легко изменить, чтобы удалить комментарии, но ваши изменения будут перезаписаны в любое время, когда плагины будут обновлены.

WP-включает в себя

В директории wp-includes хранятся jquery и различные другие js-файлы, которые вызовут темы или плагины с помощью wp_enqueue_script (). Чтобы изменить это, вам нужно будет отменить регистрацию сценариев WordPress по умолчанию и зарегистрировать новое местоположение. Добавьте к functions.php:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Это нужно сделать с каждым скриптом, используемым вашей темой или плагинами.

ответил Chris_O 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 08 Sep 2010 11:50:25 +0400 2010, 11:50:25
45

Один бит, который часто пропускается - удалите readme.html в корневом каталоге WordPress. Он не только идентифицирует установку как WP, но также имеет точную версию. И не забудьте повторить обновления.

Связанный с нами вопрос: Предотвратить доступ или автоматическое удаление readme.html, license.txt, wp-config-sample.php

ответил Rarst 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 10:25:13 +0400 2010, 10:25:13
21

Я всегда использовал метод темы Roots .
Но применяя его к тем ThemeJungle , обычно возникает большая головная боль.

Итак, начал играть с константами WP_CONTENT_*. Я считаю, что это гораздо менее подверженный ошибкам метод, и вот что я сейчас работаю:

окно активности сафари
/m является папкой uploads, /t является папкой themes, а /t/t является активной папкой темы. Сайт не является сложным, поэтому мало ресурсов загружено ...


WP_CONTENTLESS

wp-config.php

Настройка wp-content для корня (/public_html/) сайта.

/** 
 Inside WP_CONTENT, the following folders should exist: 
 /languages , /mu-plugins , /plugins , /themes , /upgrade , /uploads  

 The WP_CONTENT_* definitions bellow REMOVE the existence of the /wp-content folder 
 and makes its contents reside in the ROOT of your site

 UTTERMOST attention is necessary when doing file maintenance activities in the server (i.e.: WP upgrades, new Webmaster...), 
 as the Themes and Plugins folders are meant to be renamed to /t and /p (serious candidates for unthoughful removal)

 PLEASE note:
 - we change the Plugins folder in WP_PLUGIN_* definitions
 - the Themes folder is changed by a MustUse Plugin 
   (/mu-plugins/set-extra-themes-folder.php)
 - the Uploads folder is changed in WordPress settings page 
   (http://example.com/wp-admin/options-media.php)
 - the hardcode path to be used in WP_CONTENT_DIR and WP_PLUGIN_DIR can be checked using an action inside the set-extra-themes-folder Plugin (check the comments in this file)
*/
define( 'WP_CONTENT_DIR', '/www/htdocs/username/public_html' );
define( 'WP_CONTENT_URL', 'http://www.example.com' );

define( 'WP_PLUGIN_DIR', '/www/htdocs/username/public_html/p' );
define( 'WP_PLUGIN_URL', 'http://www.example.com/p' );

Я спросил об этом в [wp-hackers] - Любые недостатки в установке WP_CONTENT_DIR (и URL) в DOCUMENT_ROOT? , где Джон Блэкберн 1 , Майк Литтл 2 и Отто 3 были любезны, чтобы посоветовать:

  

1
  У меня была активная структура на сайте за последние 18 лет   месяцев и не видели никаких проблем. Как и при любом изменении   расположение каталога содержимого, вам нужно дважды проверить   плагины, добавляемые на сайт, не предполагают, что каталог содержимого   в wp-content.

     

2
  В сети есть дискуссии о том, что $_SERVER['DOCUMENT_ROOT'] может быть   восприимчивы к взлому. В этом случае это чрезвычайно опасно, потому что   есть много мест, которые require() или include() WP_CONTENT_DIR.   'Что-то';

     

3
  Бывают случаи, когда содержимое в $_SERVER может быть абсолютно безопасным,   но в целях безопасности лучше всегда рассматривать его как   ненадежные данные. Для этого конкретного случая, hardcode каталог.


Новая папка тем

/mu-plugins/set-extra-themes-folder.php

Поскольку нет констант WP_THEMES_*, нам нужна функция register_theme_directory () to " Зарегистрировать каталог, содержащий темы. "
Попробовал установить дополнительный каталог корневому файлу, но результаты funny (то есть: он не работает).

<?php
/*
    Plugin Name: Set Extra Themes Folder
    Version: 1.0
    Description: Allows the directory - http://example.com/t - to be used as an extra theme's directory
    Plugin URI: http://wordpress.stackexchange.com/questions/1507
    Author: brasofilo
    Author URI: http://rodbuaiz.com
*/


/**
 * Remove the comment from the following line to know the correct path to put in register_theme_diretory()
*/
//add_action( 'admin_head', 'brsfl_alert_directory_path' );

function brsfl_alert_directory_path()
{
    echo '<script type="text/javascript">
        alert("Directory: '.$_SERVER['DOCUMENT_ROOT'].'");
    </script>';
}


/**
 * The following will enable the directory "t" to be used as an EXTRA Themes directory
*/
register_theme_directory( '/www/htdocs/username/public_html/t' );


/**
 * De-registering default scripts in wp-includes for CDN ones
*/
add_action('init', 'brsfl_init_scripts');

function brsfl_init_scripts() 
{
    if ( !is_admin() ) 
    {
        wp_deregister_script( 'jquery' );
        wp_deregister_script( 'swfobject' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', false, '1.7.1' );
        wp_register_script( 'swfobject', 'https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js', false, null, true );
        wp_enqueue_script( 'jquery' );
        wp_enqueue_script( 'swfobject' );
    }
}

Загрузка папок

/wp-admin/options-media.php

Вместо http://example.com/uploads это будет http://example.com/m.
Снимите флажок Organize my uploads into..., чтобы присвоить внешний вид WPless для URL-адресов активов.
Если сайт находится в режиме реального времени, поиск и замена должны быть выполнены в базе данных, и файлы должны быть перемещены.
 загружает настройки папки


Плагины и содержимое заголовка

Обратитесь к Cris_O Ответу в этом Q & A.


README.html

Обратитесь к Rarst Ответ в этом Q & A.


Другие шаги

Как обычно, темы ThemeJungle могут подсказывать конкретные хаки в теме.
Как ... TimThumb не работает (!!! lol !!!).

ответил brasofilo 15 J000000Sunday12 2012, 22:40:19
10

Вы можете иметь WordPress на одном сервере и очищать свой контент от другого, включая только контент, который вам нужен.

Если вам нужен RSS, вам придется сделать то же самое с этим.

Фактически это будет похоже на обслуживание статических страниц с прокси-сервера или CDN, но только на биты, которые вы хотите обслуживать. Затем вы также можете использовать систему комментариев на основе javascript, такую ​​как Disqus.

Действительно малое использование ресурсов, потому что здесь нет баз данных на сервере, обслуживающем контент.

ответил AndyBeard 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 02:58:25 +0400 2010, 02:58:25
8

Вы можете создать свой собственный адрес для входа в свой блог. Не используя классический путь «myblog.com /wp-admin», чтобы попасть на свою панель инструментов Эта страница поможет вам создать стелс-логины, это также хорошо для мер безопасности.

Итак, ppl, который добавляет wp-admin в ваш блог, не сможет угадать:)

ответил mireille raad 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 08 Sep 2010 20:49:27 +0400 2010, 20:49:27
6

В дополнение к вышесказанному вам необходимо заблокировать доступ к различным файлам и каталогам wp*. Если кто-то захочет посмотреть, работает ли WP, они могут догадаться, есть ли у вас wp-settings.php или если они могут получить доступ к некоторому каталогу. Возврат 403 недостаточно, поскольку он сообщает пользователю, что ресурс существует; они просто не имеют доступа к нему.

Я не эксперт по апачи, поэтому я спросил это вопрос на сервере.

ответил Avery Chan 19 J0000006Europe/Moscow 2011, 09:41:05
5

Так много высоких голосовых ответов .... Время, чтобы установить запись прямо, это практически невозможно, и даже если это так, жизнь, вероятно, слишком коротка, чтобы приложить усилия.

Проблема заключается не в очевидных wp- * urls, meta генератора и т. д. Сложные проблемы связаны с шаблонами, которые связаны с wordpress, что домашняя система не будет пытаться реализовать такие же, как страницы авторов, год, месяц, день , используйте p = nnn в качестве допустимого параметра, создайте форму комментария с классом комментариев WordPress, структурой и именами ссылок, а затем выполните самопрограммирование плагинов кеширования и yoast SEO и, возможно, многие другие плагины, которые вы видите, только когда вы проверяете сам HTML.

И даже если вы попытаетесь очистить все, что говорит о том, что это wordpress, вам может потребоваться повторить или хотя бы перепроверять после каждого обновления плагина или ядра. Жизнь слишком короткая для этого.

Просто потому, что некоторые инструменты с белой шляпой не обнаруживают ваш сайт в Wordpress, это не значит, что черная шляпа не выполняет лучшую работу по обнаружению. Если это делается как мера безопасности, то это безопасность безвестности, которая всегда ошибочна, и если вам просто стыдно использовать Wordpress, то позвольте мне сказать вам кое-что - никто не заботится, и даже те немногие, которые, вероятно, не будут знаете, как понять это сами.

ответил Mark Kaplun 12 PM00000080000001531 2015, 20:09:15
4

Это может быть трудно достигнуть, если вы новичок в php и mod_rewrite. Я предлагаю, чтобы вы проверяли раздел моего ответа. Или попробуйте сами, вы можете использовать что-то вроде этого, чтобы скрыть структуру пути wp-content /plugins:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^modules/(.*) /wp-content/plugins/$1 [L,QSA]
</IfModule>

Это изменит путь к /modules. Используйте что-то подобное для другой структуры, вам могут потребоваться некоторые дополнительные перезаписи, см. http: //httpd.apache.org/docs/current/mod/mod_rewrite.html для получения дополнительной информации о mod_rewrite.

Если вы предпочитаете что-то из коробки, есть несколько хороших плагинов, некоторые коммерческие, также бесплатные в репозитории WordPress, я предлагаю попробовать WP Hide & Security Enhancer . Это включает в себя много вещей и помогает изменить почти все, чтобы сделать ваш WordPress неузнаваемым. Вот некоторые особенности кода:

  • Пользовательский адрес администратора
  • Пользовательский адрес администратора
  • Блокировать по умолчанию адрес администратора
  • Заблокировать любой доступ к прямой папке, чтобы полностью скрыть структуру
  • Пользовательское имя файла wp-login.php
  • Блокировать по умолчанию wp-login.php
  • Блокировать по умолчанию wp-signup.php
  • Блокировать API XML-RPC
  • Новый путь XML-RPC
  • Регулируемый URL темы
  • Новый адрес темы для детей
  • Изменить название стиля стиля
  • Пользовательский wp-include
  • Блокировать стандартные пути wp-include
  • Блок defalt wp-content
  • Пользовательские URL-адреса плагинов
  • Изменение имени отдельного плагина.
  • Блокировать пути плагинов по умолчанию.
  • Новый URL для загрузки
  • Блокировать URL-адреса для загрузки по умолчанию
  • Удалить версию Wordpress
  • Блок метаданных
  • Демонтируйте emoji и требуемый код javascript
  • Удалить тег pingback
  • Удалить wlwmanifest Meta ​​li>
  • Удалить rsd_link Meta ​​li>
  • Удалить wpemoji

и многие другие.

ответил WP-Silver 25 MarpmFri, 25 Mar 2016 14:53:34 +03002016-03-25T14:53:34+03:0002 2016, 14:53:34
3

Я не хочу повторять параметры кодирования, так как они были исчерпывающе рассмотрены, другой вариант, который я знаю, работает с помощью плагина, который скрывает wp. Я использовал этот плагин до удовлетворительных стандартов. Его называют скрыть мой WordPress.

ответил NJENGAH 25 MarpmWed, 25 Mar 2015 12:54:56 +03002015-03-25T12:54:56+03:0012 2015, 12:54:56
3

Большинство ответов сосредоточены на том, чтобы заслонять WordPress в исходном коде страницы, но даже до того, как WP уже отдал себя в заголовок http стандартной установки. Просто попробуйте свой собственный сайт на сайте, например веб-сниффер (притворитесь, что он IE 6 и попросите http 1.0 заголовок), и вы увидите, что среди возвратов:

<http://www.example.com/wp-json/>; rel="https://api.w.org/"

Последний является ссылкой на Wordpress.org API . Это происходит с тех пор, как API REST был включен в WP 4.4. Вы можете удалить его с помощью этой строки прямо в начале вашего functions.php:

remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Многие плагины, такие как Jetpack для своих коротких ссылок, также могут вставлять ссылки в HTTP-заголовок. Они могут это сделать, поскольку WP имеет HTTP API , который позволяет вам манипулировать заголовками. Вы можете использовать этот интерфейс для удаления всех настроек заголовка плагинами, если вы добавите свое действие достаточно поздно в этом процессе.

Наконец, вы можете использовать .htaccess header interface для перехватить все, что делает WP. Например, вы можете запретить отправку любых заголовков ссылок, включая эту строку:

<IfModule mod_headers.c>
Header unset Link
</IfModule>
ответил cjbj 22 PM00000040000002031 2016, 16:55:20
2

Не забывайте, что большая часть информации заголовка http, которая отправляется вместе с вашим запросом, может идентифицировать ваш сайт как работающий в WordPress. Например, если вы проверяете заголовки на следующих сайтах, это очевидно:

$ curl -I http://www.rollingstones.com/
Server: WP Engine/5.0

$ curl -I http://www.mattcutts.com
X-Powered-By: W3 Total Cache/0.9.1.3

$ curl -I http://blogs.reuters.com/us/
WP-Super-Cache: Served supercache file from PHP

Некоторые из них задаются сервером, некоторые из них устанавливаются плагинами, поэтому мне некому говорить, как удалить 100% из них, но если вы используете PHP 5.3, вы можете использовать

header_remove("X-Foo"); ( http://www.php.net/manual/en/function.header-remove.php )

, чтобы удалить известный заголовок PHP до того, как ваш контент будет удален. Я не могу сказать наверняка, где это место (может быть, кто-то может передать эту информацию), но, вероятно, безопасно поставить его на самый верх вашего index.php перед любым контентом, отправленным в браузер.

ответил Dan Gayle 1 Jam1000000amWed, 01 Jan 2014 05:40:15 +040014 2014, 05:40:15
1

Вы можете настроить тему, чтобы исключить всю информацию WordPress. Также удалите мета-виджет и любой виджет, который выводит информацию о платформе.

Лично я предпочитаю показывать свою благодарность, показывая, что я использую WordPress.

ответил James 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 08 Sep 2010 19:43:28 +0400 2010, 19:43:28
0

Вы можете использовать плагин WPS Hide Login .
Войдите в свой Wordpress с помощью wp-admin. Но вы можете изменить wp-admin на пользовательский, используя этот плагин.

Пример:

До: http://example.com/wp-admin
После: http://example.com/custom-text-to-login

ответил 10 J000000Monday17 2017, 19:01:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132