casebash
  • 0
Новичок

Скрыть тот факт, что сайт использует WordPress?

  • 0

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

РЕДАКТИРОВАТЬ. Важное примечание о безопасности:

Пожалуйста, поймите, что сделать это идеально невозможно в соответствии с ответом Марка, поэтому не полагайтесь на это как на меру безопасности.

Share
  1. Зачем вам скрывать, что вы используете WordPress?

    • 0
  2. Самые большие раздачи 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');
    

    ПЛАГИНЫ

    Имейте в виду, что некоторые плагины, такие как Akismat, All in One SEO, 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');
    

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

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

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

    • 0
  4. Я всегда использовал метод Roots Theme.
    Но применение его к тем 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 может быть совершенно безопасным, но в целях безопасности лучше всегда обращаться с ним как с ненадежными данными. Для этого конкретного случая жестко закодируйте каталог.


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

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

    Так как констант нет WP_THEMES_*, нам нужна функция register_theme_directory(), чтобы » зарегистрировать каталог, содержащий темы «.
    Попытался установить дополнительный каталог в корень, но результаты забавны (т.е. это не работает).

    <?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... придаст URL-адресам активов вид WPless.
    Если сайт работает, необходимо выполнить поиск/замену в базе данных и переместить файлы.
    загружает настройки папки


    Плагины и главный контент

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


    Readme.html

    Обратитесь к Rarst ответу в этом вопросе и ответе.


    Другие шаги

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

    • 0
  5. Единственный верный ответ: НЕВОЗМОЖНО

    Так много ответов, получивших высокие оценки… пора расставить все по своим местам. Что ж, правда в том, что это практически невозможно, и даже если это так, жизнь, вероятно, слишком коротка, чтобы прилагать к этому усилия. Любой ответ, который продвигает шаги по сокрытию WP, является пустой тратой вашего времени и вводит вас в заблуждение, думая, что вы скрываете свой WP (что абсурдно).

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

    2) Есть другие неучтенные методы, которые показывают существование WP (и вы не можете победить):

    • Даже заголовок ответа php (как отметил Дэн Гейл ниже моего ответа) возвращает конкретный заголовок WP.

    • Любой может просто запросить любой из десятков корневых файлов.php: site.com/wp-cron.php или site.com/xmlrpc.php (или и т. д., которые вы не можете скрыть), и ответ заголовка будет 200 вместо 404 not found .

    • любой может проверить конечные точки json, чтобы получить конкретный ответ WP.

    • Внутри страницы HTML многие файлы .css или .js файлы содержат определенные фразы, которые явно относятся к WP.

    • Внутри страницы HTML легко найти классы elements/css, такие как <div class="entry-content post-14"... или и т. д. (что является прямым намеком на то, что используемая структура принадлежит WP)

    • Внутри страницы HTML вы легко увидите uploads папку, или даже если вы переименуете ее с помощью жесткого кодирования, тогда часть даты, например uploads/2018/05/image.jpg (или даже image-315x225.jpg ), покажет типичную структуру WP.

    • так как многие сайты сейчас создаются с помощью MultiSite, он использует т.е. /site/2 в ссылках…

    • пинговать ридми любых плагинов/тем (все они есть), типа plugin-name/readme.txt, возвращая статус 200 .

    • и много-много-много других вещей, которые вы (или даже профессионалы) не сможете скрыть и просто потратите зря свои дни!


    заключение

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

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

    Единственное, о чем вы должны заботиться, это о том, чтобы вы защищали WP как можно больше и следили за его регулярными обновлениями.

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

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

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

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

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

    Так что люди, которые добавляют wp-admin к вашему блогу, не смогут догадаться 🙂

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

    Я не эксперт по Apache, поэтому я задал этот вопрос на сервере.

    • 0
  9. Не забывайте, что большая часть информации заголовка 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 ПЕРЕД любым содержимым, которое отправляется в браузер.

    • 0
  10. Этого может быть трудно добиться, если вы новичок в 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 неузнаваемым. Вот некоторые особенности кода:

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

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

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

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

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

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

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

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

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

    <IfModule mod_headers.c>
    Header unset Link
    </IfModule>
    
    • 0
  13. Вы можете настроить тему, чтобы исключить всю информацию WordPress. Также удалите мета-виджет и любой виджет, который выводит информацию о платформе.

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

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

    Пример:

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

    • 0

Оставить ответ

You must login to add an answer.