サイトがWordPressを使用している事実を非表示にするための手順は?


142

WordPressを使用しているという事実について目立たないようにしようとしているWebサイトがあります。目立たないようにするために、どのような手順を踏むことができますか?

編集-重要なセキュリティ上の注意:

これを完全に行うことはMarkの答えに従って不可能であるため、セキュリティ対策としてこれに依存しないでください。


7
Wordpressを使用していることを隠す必要があるのはなぜですか?
ワディM.

15
@ワディ:私に言われたため
Casebash

5
それは不明瞭さによるセキュリティです。彼らが本当に望むなら、誰かがページ生成の振る舞いを相関させて、それがワードプレスエンジンで動いていることを証明することができます。
ワディM.

28
@Wadih M.は - 「隠すことによるセキュリティ」、このための唯一の理由ではありません。私のクライアントの1人は同じことを望んでいますが、ホストされたサービスを、「まあ、ただWordPressを使用しているだけと思ったらトップドルで支払う顧客に販売したいので、それを望んでいます。少なくとも私のクライアントにとっては、セキュリティではなく、ブランディング/認識ゲームです。
MikeSchinkel

2
非常に多くのサイトで6年間WordPressを使用していますが、とにかく誰もあなたを信じません。;-)
cjbj

回答:


128

WordPressの最大のプレゼントは<head> </head>タグの間にあります。

The Twentyten Themeが出力するWordPressヘッドコンテンツの例と削除方法:

<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-includes

wp-includesディレクトリには、jqueryと、テーマまたはプラグインがwp_enqueue_script()を使用して呼び出すその他のさまざまなjsファイルが保持されます。これを変更するには、デフォルトの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:すばらしい答えです!プラグインやテーマを使用している場合、これらの多くが簡単に識別できることもおそらく追加する必要があります。つまり、誰かがakismetプラグインまたはオールインワンseoを使用している場合、それが探しているものを知っている誰かによるまだかなり死んだ景品です。
MikeSchinkel

@MikeSchinkel本当ですが、同時に、wp-includesとwp-adminも同じです。これらのいずれも変更できず、サイトの機能を制限することなく非表示にできないという例外があります。
ジョンPブロッホ

@ジョンPブロック:間違いなく、しかし、私は言ってないだろう、私は言っていた。:)
マイクシンケル

3
@MikeSchinkel:WP-adminとのためのwp-含まれますが、そう、その後につながるなどの管理を、他のユーザーのためのinexistentこれらのパスを作るために、Apacheのアクセス制御を経由して、いくつかのものを行うことができ、標準の404
hakre

@Chris_O:チェックアウトregister_theme_directory()、テーマディレクトリを "wp-content"ディレクトリから非表示にするのは素晴らしいことだと思います。
ハクレ

45

多くの場合見逃されている1つのビットreadme.html-WordPressのルートで削除します。インストールをWPとして識別するだけでなく、正確なバージョンもあります。また、更新を繰り返すことを忘れないでください。

関連質問:アクセスを禁止するか、readme.html、license.txt、wp-config-sample.phpを自動削除します


5
良い点-また、.htaccessを使用してreadme.htmlへのアクセスを常に拒否できるため、再度削除することを心配する必要はありません。
ティムマローン


21

私は常に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...与えるWPlessの資産のURLに出現します。
サイトがライブの場合、データベースで検索/置換を実行し、ファイルを移動する必要があります。
フォルダー設定をアップロードします


プラグインとヘッドコンテンツ

Cris_OこのQ&Aの回答を参照してください。


Readme.html

RarstこのQ&Aの回答を参照してください。


その他の手順

いつものように、ThemeJungleテーマは、テーマに特定のハッキングを促す場合があります。
のように... TimThumbが機能しません(!!! lol !!!)。


1
申し訳ありませんが、ThemeForestは、この問題に取り組むための手段を講じられたようです。そして、いくつかの素晴らしい援助の手で
ブラソフィロ

13

唯一の有効な答え:不可能

非常に多くの高い投票の答え....記録をまっすぐにするための時間。まあ、真実はそれは事実上不可能であり、たとえそうであっても、おそらく人生は短すぎてそれに努力することはできません。WPを非表示にする手順を促進するすべての回答は、時間の無駄であり、WPを非表示にしている(それはばかげている)と思って誤解させます。

1)問題は明らかなwp-*URL、ジェネレーターメタなどではありません。困難な問題はワードプレスに関連するパターンにあり、自家栽培システムが著者ページ、年、月、日ページのように実装することを気にしません。有効なパラメーターとしてnnn、ワードプレスのコメントクラス、構造、リンク名を含むコメントフォームがあり、キャッシュプラグインとヨーストSEO、およびおそらくHTML自体を検査するときにのみ表示される他の多くのプラグインのセルフプロモーションがあります。

2)WPの存在を示す他の数えられない方法があります(そして、あなたはそれを打ち負かすことはできません):

  • php response-header(私の答えの下にDan Gayleが述べたように)でさえ、特定のWPヘッダーを返します。

  • 誰でも10個のルート.phpファイルのいずれかを照会できます:site.com/wp-cron.phpまたはsite.com/xmlrpc.php(または、非表示にできないなど)、ヘッダーの応答はの200代わりになり404 not foundます。

  • 誰でもjsonエンドポイントをチェックして、WP固有の回答を取得できます。

  • ページHTMLの内部には、.cssまたはの多くに.js特定のフレーズがあり、WPを明確に参照しています。

  • ページHTML内で、<div class="entry-content post-14"...またはなどの要素/ cssクラスを簡単に見つけることができます(これは、使用される構造がWPである直接的なヒントです)

  • ページHTML内で、uploadsフォルダーを簡単に確認できます。または、ハードコーディングで名前を変更した場合でも、日付部分uploads/2018/05/image.jpg(またはimage-315x225.jpg)で典型的なWP構造が表示されます。

  • 現在、多くのサイトがMultiSiteを使用して構築されているため/site/2、リンクで使用されます...

  • plugin-name/readme.txtステータスを返すなど、プラグイン/テーマのreadme(すべてに含まれる)にpingを送信します200

  • そして、あなた(または専門家でさえ)が隠すことができず、ただあなたの日々を無駄にする多くの、多くの、多くのこと!


結論

また、これがワードプレスであることを示すすべてをクリーンアップする努力をしたとしても、プラグインまたはコアのアップグレードのたびにやり直すか、少なくとも再確認する必要があります。それには人生が短すぎます。

一部のディレタントを誤解させるかもしれませんが、優秀な検査官から隠れることはできません。これがセキュリティ対策として行われている場合、それは常に間違っている隠蔽によるセキュリティであり、あなたがワードプレスを使用することを恥ずかしがっているなら、私にあなたに何かを教えてください-自分でそれを理解する方法を知っています。

気にする必要がある唯一のことは、WPをできる限り保護し、定期的な更新を監視することです。


唯一の正しい答え、私はそれを投稿したかった。他のすべての回答は、不可能でナンセンスな目標を達成するための誤解を招き、時間を浪費する試みであるため、私はすべての回答を下げました。あなたが私を許可するなら、私はあなたの答えの中に2セントを加えます。
T.Todua

はい、どうぞ。
マーク・Kaplun

私もこれに投票しました。あいまいさによるセキュリティのためだけにwpを隠す時間を無駄にします。動作しないだけでなく、間違った機能を破壊する可能性もあります。
レムジキャヴダー18年

10

1つのサーバーでWordPressを使用し、必要なコンテンツのみを含む別のサーバーからコンテンツをスクレイピングできます。

RSSが必要な場合は、同じことをする必要があります。

実質的には、プロキシまたはCDNから静的ページを提供するようなものですが、提供したいビットのみを提供します。また、DisqusなどのJavaScriptベースのコメントシステムを使用することもできます。

リソースの使用量が非常に少ない。これは、コンテンツを提供するサーバーにデータベースがないためです。


@AndyBeard-それは非常に興味深いアイデアですが、何かを実行可能にするためには多くの開発時間が必要になります。または、誰かがすでにこれを行っているオープンソースプロジェクトを知っていますか?
MikeSchinkel

4
ここでは一つの解決策であるwordpress.org/extend/plugins/really-static -他のいくつかあります
AndyBeard

7

カスタムアドレスを作成して、ブログにログインできます。従来の「myblog.com/wp-admin」パスを使用してダッシュボードにアクセスしないことで、 このページはステルスログインの作成に役立ちます。これはセキュリティ対策にも役立ちます。

したがって、ブログにwp-adminを追加したpplは推測できません:)


リンクは古く、プラグインは削除されました。
カイザー

2
@kaiser:インターネットアーカイブウェイバックマシンには(そして、驚くべきことに、zipもあります);)
brasofilo


1
@kaiserのbrasofilo - :)私もこれを保管しております答えにフォローアップのための感謝の男
ミレイユのRAAD

5

上記に加えて、さまざまなwp*ファイルとディレクトリへのアクセスをロックダウンする必要があります。WPを実行しているwp-settings.phpかどうかを確認したい人は、あなたが持っているかどうか、またはディレクトリにアクセスできるかどうかを推測できます。403を返すだけでは、リソースが存在することをユーザーに伝えるため、十分ではありません。彼らはそれへのアクセス権を持っていません。

私はApacheの専門家ではないので、serverfaultでこの質問をしました。


3

リクエストとともに送信される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の一番上に置くことはおそらく安全です。


3

phpとmod_rewriteを初めて使用する場合、これを達成するのは困難です。私の回答のセクションを確認してください。または、自分で試してみて、次のようなものを使用してwp-content / pluginsパス構造を非表示にできます。

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

これにより、パスが/ modulesに変更されます。他の構造にも同様のものを使用します。高度な書き換えが必要になる場合があります。追加のmod_rewrite情報については、http://httpd.apache.org/docs/current/mod/mod_rewrite.htmlを参照してください

すぐに使えるものを好む場合は、WordPressリポジトリで無料の優れたプラグイン、商用のプラグインがいくつかあります。WPHide&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パスをブロックする
  • defalt wp-contentをブロックする
  • カスタムプラグインのURL
  • 個々のプラグインURLの変更
  • デフォルトのプラグインパスをブロックする
  • 新しいアップロードURL
  • デフォルトのアップロードURLをブロックする
  • ワードプレス版を削除
  • メタジェネレーターブロック
  • 絵文字と必要なJavaScriptコードを無効にします
  • pingbackタグを削除
  • wlwmanifestメタを削除
  • rsd_linkメタを削除
  • wpemojiを削除

などなど..


2

徹底的にカバーされているため、コーディングオプションを繰り返したくありません。私が知っている他のオプションは、wpを隠すプラグインを使用することです。私は以前に満足のいく標準にこのプラグインを使用しました。それは私のWordPressを隠すと呼ばれます。


2

ほとんどの回答は、ページのソースコードでWordPressを不明瞭にすることに集中していますが、その前から、WPが標準インストールのhttpヘッダーで既にそれを明かしています。web-snifferのようなサイト(IE 6のふりをしてhttp 1.0ヘッダーを要求する)で自分のサイトを試してみてください。

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

後者はWordpress.org APIへのリンクです。REST APIがWP 4.4に含まれていたので、そこにあります。の先頭にあるこの行で削除できますfunctions.php

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

Jetpackのショートリンク用の多くのプラグインも、httpヘッダーにリンクを挿入する場合があります。WPにはHTTP APIがあるため、ヘッダーを操作できます。プロセスの後半にアクションを追加する場合、このインターフェイスを使用してプラグインによるすべてのヘッダー設定を削除できます。

最後に、.htaccessヘッダーインターフェイスを使用して、WPが実行していることを傍受することができます。たとえば、次の行を含めることにより、リンクヘッダーが送信されないようにすることができます。

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

0

テーマをカスタマイズして、すべてのWordPress情報を除外できます。また、メタウィジェットと、プラットフォームに関する情報を出力するウィジェットを削除します。

個人的には、WordPressを使用していることを表示することで感謝の気持ちを表しています。


17
感謝の気持ちはいいが、核心的な質問には答えない。
ザムース

-1

プラグインWPS Hide Loginを使用できます。
を使用してワードプレスにログインしますwp-admin。ただし、wp-adminこのプラグインを使用してカスタムに変更できます。

例:

前:http://example.com/wp-admin
後: http://example.com/custom-text-to-login

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.