WordPressを使用しているという事実について目立たないようにしようとしているWebサイトがあります。目立たないようにするために、どのような手順を踏むことができますか?
編集-重要なセキュリティ上の注意:
これを完全に行うことはMarkの答えに従って不可能であるため、セキュリティ対策としてこれに依存しないでください。
WordPressを使用しているという事実について目立たないようにしようとしているWebサイトがあります。目立たないようにするために、どのような手順を踏むことができますか?
これを完全に行うことはMarkの答えに従って不可能であるため、セキュリティ対策としてこれに依存しないでください。
回答:
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 » Feed" href="http://example.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Example Blog » 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');
これは、テーマまたはプラグインで使用される各スクリプトで実行する必要があります。
register_theme_directory()
、テーマディレクトリを "wp-content"ディレクトリから非表示にするのは素晴らしいことだと思います。
多くの場合見逃されている1つのビットreadme.html
-WordPressのルートで削除します。インストールをWPとして識別するだけでなく、正確なバージョンもあります。また、更新を繰り返すことを忘れないでください。
関連質問:アクセスを禁止するか、readme.html、license.txt、wp-config-sample.phpを自動削除します
私は常にRoots Themeメソッドを使用しました。
しかし、これらのThemeJungleに適用することは、通常大きな頭痛の種です。
それで、WP_CONTENT_*
定数をいじり始めました。私はそれがはるかにエラーが発生しにくい方法だと信じており、これは私が今取り組んでいるものです:
/m
は、uploads
フォルダで/t
あり、themes
フォルダで/t/t
あり、アクティブなテーマフォルダです。サイトは複雑ではないため、ロードされるアセットはほとんどありません...
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の回答を参照してください。
Rarst
このQ&Aの回答を参照してください。
いつものように、ThemeJungleテーマは、テーマに特定のハッキングを促す場合があります。
のように... TimThumbが機能しません(!!! lol !!!)。
非常に多くの高い投票の答え....記録をまっすぐにするための時間。まあ、真実はそれは事実上不可能であり、たとえそうであっても、おそらく人生は短すぎてそれに努力することはできません。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をできる限り保護し、定期的な更新を監視することです。
1つのサーバーでWordPressを使用し、必要なコンテンツのみを含む別のサーバーからコンテンツをスクレイピングできます。
RSSが必要な場合は、同じことをする必要があります。
実質的には、プロキシまたはCDNから静的ページを提供するようなものですが、提供したいビットのみを提供します。また、DisqusなどのJavaScriptベースのコメントシステムを使用することもできます。
リソースの使用量が非常に少ない。これは、コンテンツを提供するサーバーにデータベースがないためです。
カスタムアドレスを作成して、ブログにログインできます。従来の「myblog.com/wp-admin」パスを使用してダッシュボードにアクセスしないことで、 このページはステルスログインの作成に役立ちます。これはセキュリティ対策にも役立ちます。
したがって、ブログにwp-adminを追加したpplは推測できません:)
リクエストとともに送信される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の一番上に置くことはおそらく安全です。
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を認識できないようにするためにほとんどすべてを変更するのに役立ちます。コードのいくつかの機能は次のとおりです。
などなど..
ほとんどの回答は、ページのソースコードで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>
プラグインWPS Hide Loginを使用できます。
を使用してワードプレスにログインしますwp-admin
。ただし、wp-admin
このプラグインを使用してカスタムに変更できます。
例:
前:http://example.com/wp-admin
後: http://example.com/custom-text-to-login