it-swarm-eu.dev

Kroky, aby se Skrýt fakta Stránky je pomocí WordPress?

Mám webové stránky, pro které se snažíme být diskrétní o tom, že používáme WordPress. Jaké kroky můžeme učinit, aby bylo méně zřejmé?

EDIT- Důležitá bezpečnostní poznámka:

Mějte prosím na paměti, že je to naprosto nemožné podle Marka odpověď , takže se na to nespoléhejte jako na bezpečnostní opatření.

141
Casebash

Největší WordPress giveaways jsou mezi <head> </head> tagy.

Příklad výstupu obsahu WordPressu podle tématu Twentyten a jak odstranit:

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

Odebrat přímo z header.php

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

Skrýt WordPress voláním šablony stylů z jiného umístění a změňte adresář wp-content. WordPress vyžaduje, aby vaše téma obsahovalo některé základní informace v horní části stylu style.css (style.css musí být v kořenovém adresáři motivů). Budete muset vytvořit alternativní CSS a zavolat z hlavy. WordPress nevyžaduje, abyste používali motivy style.css, pouze to vyžaduje, aby byl v adresáři motivů.

Odebrat přímo z 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" /> 

Chcete-li tyto dodatečné odkazy odebrat, můžete přidat filtr do funkcí .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);

Můžete změnit svůj adresář pluginů a adresář wp-content ve vašem souboru wp-config.php, ale můžete mít nějaké problémy, pokud váš motiv nebo pluginy nepoužívají správnou metodu pro volání souborů.

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

Nastavte WP_CONTENT_URL na úplný identifikátor URI tohoto adresáře (bez koncového lomítka), např.

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

Volitelné Nastavte WP_PLUGIN_DIR na úplnou místní cestu tohoto adresáře (bez koncového lomítka), např.

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

Nastavte WP_PLUGIN_URL na úplný identifikátor URI tohoto adresáře (bez koncového lomítka), např.

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

PLUGINY

Uvědomte si, že některé pluginy jako Akismat, All in One SEO, W3-Total-Cache, Super Cache a mnoho dalších přidávají komentáře k výstupu HTML. Většina z nich lze snadno upravit, aby se odstranily komentáře, ale vaše změny budou přepsány kdykoliv aktualizací pluginů.

wp-includes

Adresář wp-includes uchovává jquery a různé další soubory js, které témata nebo pluginy budou volat pomocí wp_enqueue_script (). Chcete-li to změnit, musíte zrušit registraci výchozích skriptů aplikace WordPress a zaregistrovat nové umístění. Přidat do funkcí.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');

To bude nutné provést s každým skriptem používaným vaším motivem nebo zásuvnými moduly.

126
Chris_O

Jeden bit, který je často vynechán - smazat readme.html v kořenovém adresáři WordPressu. Nejen, že identifikuje instalaci jako WP, ale má také přesnou verzi. A nezapomeňte opakovat aktualizace.

Související otázka: Zabránit přístupu nebo auto-delete readme.html, license.txt, wp-config-sample.php

45
Rarst

Vždy jsem použil metodu Roots Theme .
Ale aplikování na ty ThemeJungle 's je obvykle velká bolest hlavy.

Takže začal hrát s konstantami WP_CONTENT_*. Věřím, že je to mnohem méně metoda náchylná k chybám, a to je to, co právě teď pracuji:

safari activity window
/m je složka uploads, /t je složka themes a složka /t/t je aktivní složka motivu. Stránky nejsou složité, tak málo aktiv je načten ... _


WP_CONTENTLESS

wp-config.php

Nastavení wp-content na kořen (/public_html/) webu.

/** 
 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' );

Zeptal jsem se na to v [wp-hackers] - Jakékoliv nevýhody v nastavení WP_CONTENT_DIR (a URL) na DOCUMENT_ROOT? , kde John Blackbourn1, Mike Little2 a Otto3 bylo tak laskavé, že vám poradí:

1
Měl jsem tuto strukturu aktivní na webu za posledních 18 měsíců a neviděl jsem žádné problémy. Stejně jako u jakékoli změny umístění adresáře obsahu, budete muset zkontrolovat všechny pluginy, které přidáte na stránky, nepředpokládejte, že obsahový adresář je na wp-content.

2
Diskuse kolem sítě jsou $_SERVER['DOCUMENT_ROOT'] náchylné k hackování. V tom případě je to velmi nebezpečné, protože existuje mnoho míst, kde require() nebo include()WP_CONTENT_DIR. 'něco';

3
Existují případy, kdy obsah v $_SERVER může být naprosto bezpečný, ale z bezpečnostních důvodů je lepší vždy s ním zacházet jako s nedůvěryhodnými údaji. Pro tento specifický případ, hardcode adresář.


Složka Nová témata

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

Vzhledem k tomu, že neexistují žádné konstanty WP_THEMES_*, potřebujeme funkci register_theme_directory () na "Registrovat adresář obsahující témata."
Pokusil se nastavit další adresář na kořen, ale výsledky jsou funny (tzn .: nefunguje).

<?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' );
    }
}

Složka pro nahrání

/wp-admin/options-media.php

Místo http://example.com/uploads to bude http://example.com/m.
Zrušte zaškrtnutí políčka Organize my uploads into... a zobrazí adresy URL {WPless.
Pokud je web živý, musí být v databázi provedeno vyhledávání/nahrazení a soubory musí být přesunuty.
uploads folder settings


Pluginy a hlavní obsah

Viz Cris_O Odpověď v této otázce.


Readme.html

Viz Rarst Odpověď v této otázce.


Další kroky

Témata ThemeJungle mohou jako obvykle motivovat konkrétní hacky v tématu.
Jako ... TimThumb nefunguje (!!! lol !!!).

21
brasofilo

Jediná platná odpověď: NESPRÁVNÁ

Tolik vysokých hlasovaných odpovědí .... čas nastavit rekord rovně. Pravdou je, že je to prakticky nemožné, ai když je to tak, život je pravděpodobně příliš krátký na to, aby se do něj dostalo úsilí. Jakákoliv odpověď, která podporuje kroky ke skrytí WP, je jen ztráta času a zavádí vás do myšlenky, že se skrývá vaše WP (to je absurdní).

1) Problém není zřejmý wp-* urls, generátor meta atd. Těžké problémy jsou se vzory, které jsou spojeny s wordpress, že domácí systém nebude obtěžovat implementovat jako autor stránky, rok, měsíc, stránky den, použití p = nnn jako platný parametr, mít komentář formulář s wordpress komentář třídy, strukturu a odkaz jména, a pak tam je vlastní propagace cach pluginy a yoast SEO a pravděpodobně mnoho dalších pluginů, které vidíte pouze při kontrole HTML sám .

2) Existují i ​​jiné nespočetné metody, které ukazují existenci WP (a to nelze porazit):

  • Dokonce i php response-header (jak poznamenal Dan Gayle pod mou odpovědí) vrací specifickou hlavičku WP.

  • Kdokoli může pouze dotazovat některý z desítek kořenových souborů .php: site.com/wp-cron.php nebo site.com/xmlrpc.php (nebo atd., Které můžete skrýt) a odpověď hlavičky bude 200 místo 404 not found.

  • kdokoli může zkontrolovat, zda má koncový bod json získat specifickou odpověď WP.

  • Uvnitř HTML stránky má mnoho souborů .css nebo .js specifické fráze, které jasně odkazují na WP.

  • Uvnitř stránky HTML, jeho snadné najít prvky/css třídy, jako <div class="entry-content post-14"... nebo atd. (Což je přímý náznak, že použitá struktura je WP)

  • Uvnitř HTML stránky se snadno zobrazí složka uploads, nebo i když ji přejmenujete s hardcodingem, pak část data jako uploads/2018/05/image.jpg (nebo dokonce image-315x225.jpg) zobrazuje typickou strukturu WP.

  • protože mnoho stránek je nyní postaveno pomocí služby MultiSite, používá se například /site/2 v odkazech ...

  • ping na všechny pluginy/motivy readme (všechny obsahují), jako plugin-name/readme.txt, návratový stav 200.

  • a mnoho, mnoho, mnoho dalších věcí, které vy (nebo dokonce profesionálové) nebudete moci skrýt a budou jen ztrácet vaše dny!


závěr

A i když dáte úsilí do čištění všeho, co naznačuje, že se jedná o wordpress, možná budete muset znovu nebo alespoň znovu zkontrolovat po každém upgradu pluginu nebo jádra. Život je na to příliš krátký.

Mohl bys uvést do omylu některé diletanty, ale nemůžeš se schovat před dobrým inspektorem. Pokud je to provedeno jako bezpečnostní opatření, pak je to zabezpečení zastíráním, které je vždy špatné, a pokud se stydíte za to, že používáte wordpress, pak mi dovolte, abych vám něco řekl - nikdo se nestará, a dokonce i těch velmi málo, které pravděpodobně nebudou vím, jak to zjistit sám.

Jediné, na co byste se měli starat, je to, že chráníte WP co nejvíc a můžete sledovat jeho pravidelné aktualizace.

12
Mark Kaplun

Můžete mít WordPress na jednom serveru a škrábání obsahu z jiného pouze obsah, který potřebujete.

Pokud budete potřebovat RSS, museli byste to udělat stejně.

Efektivně by to bylo jako obsluhovat statické stránky z proxy nebo CDN, ale pouze bity, které chcete sloužit. Pak byste mohli také použít systém komentářů na bázi JavaScriptu, jako je Disqus.

Opravdu nízké využití zdrojů, protože zde nejsou žádné databáze na serveru sloužící obsahu.

10
AndyBeard

Chcete-li se přihlásit do svého blogu, můžete vytvořit vlastní adresu. Tím, že nepoužíváte klasickou cestu „myblog.com/wp-admin“, abyste se dostali na řídicí panel Tato stránka vám pomůže s vytvořením stealth přihlášení, to je také dobré pro bezpečnostní opatření.

Takže ppl, který do vašeho blogu připojí wp-admin, nebude schopen uhádnout :)

7
mireille raad

Kromě výše uvedeného musíte uzamknout přístup k různým souborům a adresářům wp*. Pokud někdo chtěl zjistit, zda používáte WP, mohli by odhadnout, zda máte wp-settings.php nebo zda mají přístup k některému adresáři. Vrácení 403 není dostačující, protože říká uživateli, že zdroj existuje; nemají k němu přístup.

Nejsem expert na Apache, takže jsem se zeptal na tuto otázku na serverfault.

5
Avery Chan

To může být těžké dosáhnout, pokud jste noví php a mod_rewrite. Navrhuji, abyste si zkontrolovali část mé odpovědi. Nebo si to vyzkoušejte sami, můžete použít něco takového, abyste skryli strukturu cesty wp-content/plugins:

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

To změní cestu k/moduly. Použijte něco podobného pro jinou strukturu, možná budete potřebovat pokročilé přepisy, viz http://httpd.Apache.org/docs/current/mod/mod_rewrite.html pro další informace o mod_rewrite.

Pokud preferujete něco z krabice, existuje několik pěkných pluginů, některé komerční, také zdarma v úložišti WordPress, doporučuji vyzkoušet WP Hide & Security Enhancer . To zahrnuje hodně věcí a pomoci změnit téměř všechno, aby se vaše WordPress k nepoznání. Zde jsou některé funkce kódu:

  • Vlastní adresa URL správce
  • Vlastní adresa URL správce
  • Blokovat výchozí URL Url
  • Blokovat libovolný přímý přístup ke složce, aby se struktura zcela skryla
  • Vlastní název souboru wp-login.php
  • Blokovat výchozí wp-login.php
  • Blokovat výchozí wp-signup.php
  • Blokovat XML-RPC API
  • Nová cesta XML-RPC
  • Nastavitelná adresa URL
  • Nová podřízená adresa URL
  • Změna názvu souboru stylu motivu
  • Vlastní wp-include
  • Blokovat výchozí cesty wp-include
  • Blokovat obsah walt
  • Vlastní adresy URL pro pluginy
  • Změna url individuálního pluginu
  • Blokovat výchozí cesty pluginů
  • Nová adresa URL pro nahrávání
  • Blokovat výchozí adresy URL pro nahrávání
  • Odebrat verzi wordpress
  • Blok Meta generátoru
  • Zakažte emoji a požadujte JavaScript kód
  • Odstraňte značku pingback
  • Odstranit wlwmanifest Meta
  • Odebrat rsd_link Meta
  • Odstranit wpemoji

a mnoho dalších..

3
WP-Silver

Nezapomeňte, že mnoho informací o hlavičkách http, které jsou zasílány spolu s vaším požadavkem, může identifikovat vaše stránky jako spuštěné na WordPressu. Pokud například kontrolujete záhlaví na následujících stránkách, je zřejmé:

$ 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

Některé z nich jsou nastaveny serverem, některé jsou nastaveny zásuvnými moduly, takže pro ně nemohu říci, jak odstranit 100% z nich, ale pokud používáte PHP 5.3, můžete použít

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

chcete-li odebrat známou záhlaví PHP dříve, než bude obsah vypnut. Nemohu říci na jistotu, kam to umístit (možná, že někdo jiný může s těmito informacemi postavit), ale je pravděpodobně bezpečné umístit ho na samém vrcholu index.php PŘED jakýmkoli obsahem, který je odeslán do prohlížeče.

3
Dan Gayle

Většina odpovědí se soustředí na zatemnění WordPressu ve zdrojovém kódu stránky, ale ještě předtím, než se WP vzdaluje v hlavičce http standardní instalace. Vyzkoušejte si vlastní web na webu jako web-sniffer (předstírejte, že je IE 6 a požádejte o http 1.0 hlavičku) a uvidíte, že mezi vrácenými položkami je:

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

Ten je odkazem na Wordpress.org API . Je to tam, protože REST API bylo zahrnuto do WP 4.4. Tento řádek můžete odstranit přímo na začátku functions.php:

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

Mnoho pluginů, jako je například Jetpack pro své krátké odkazy, může také vkládat odkazy do záhlaví http. Mohou tak učinit, protože WP má HTTP API , což umožňuje manipulovat se záhlavími. Toto rozhraní můžete použít k odstranění všech nastavení záhlaví pomocí zásuvných modulů, pokud do tohoto procesu přidáte akci dostatečně pozdě.

Nakonec můžete použít rozhraní .htaccess hlavičky pro zachycení čehokoliv WP. Můžete například zabránit odeslání všech záhlaví odkazů zahrnutím tohoto řádku:

<IfModule mod_headers.c>
Header unset Link
</IfModule>
2
cjbj

Nechci opakovat možnosti kódování, protože byly vyčerpávajícím způsobem pokryty, další možností, kterou vím, že funguje, je použití pluginu, který skrývá wp. Použil jsem tento plugin před uspokojivými standardy. Jeho nazývá skrýt mé WordPress.

2
NJENGAH

Můžete přizpůsobit motiv, aby byly vyloučeny všechny informace aplikace WordPress. Také odstraňte meta widget a jakýkoliv widget, který by poskytoval informace o platformě.

Osobně jsem raději ukázat svou vděčnost zobrazením, že používám WordPress.

0
James