• ベストアンサー

関数の無効化、WordPressのセキュリティ

PHPの関数や命令をある特定の部分で無効にすることは可能でしょうか?具体的には、 WordPressは独自テンプレートを使用できるそうですが、phpの関数を入れ込んで置けば他ユーザのファイルを削除したりすることが可能に思えるのですが、WPは独自テンプレートのそういうセキュリティに対してどういう対処を行っているのでしょうか?自由にPHPの命令を実行させるようにしているのでしょうか?という疑問を持っています。 また、ある特定のファイルや特定の箇所だけPHPの関数や命令を無効にしたいのですが、どういう方法が考えられますでしょうか?アドバイスを頂ければ大変有難いです。宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1306/1780)
回答No.1

WordPress自体はそれなりにテストもされ、既存のCMSではかなりセキュアな方だと思いますが。他者に心が許せないというのであれば、自分でサーバの php.ini の記述を書き換えれば、特定の関数(コマンド)を無効化出来ます。 >記述例:: disable_functions = "shell_exec, suexec, passthru" ~みたいな感じて記述して置けば、“”内の関数は全て無効化されます。 ただしこの方法はサーバ全体に作用しますので、「特定のファイル」とか「特定の箇所」だけというのはちょっと分りません?と言うか「特定のファイル」が判明しているのであれば、そのファイルを削除するなり危険と判断する部分を書き換えれば良いのでは??

fabu
質問者

補足

ご回答ありがとうございます。 特定の箇所だけに無効化させることは無理なのかも知れないのですね。 テンプレートを他人から手に入れた場合、安全かどうか全てをチェックするのが難しいのではないかと感じています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • wordpressのURL変更について

    http://0000.com/wpをhttp://0000.comに変更をしようと思いました。 まず設定画面からサイトの名前をhttp://0000.com/wpからhttp://0000.comに変更し、 index.phpをFTPから抜き <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wp-blog-header.php'); ?> の↓を変更。 /** Loads the WordPress Environment and Template */ require('./wordpress/wp-blog-header.php'); ?> その後一つ上の層にindex.phpをあげたのですがサイトにアクセスすると、 Warning: require(./wordpress/wp-blog-header.php) [function.require]: failed to open stream: No such file or directory in /home/sites/heteml/users113/0/1/f/01f-boy/web/pimp/index.php on line 17 Warning: require(./wordpress/wp-blog-header.php) [function.require]: failed to open stream: No such file or directory in /home/sites/heteml/users113/0/1/f/01f-boy/web/pimp/index.php on line 17 Fatal error: require() [function.require]: Failed opening required './wordpress/wp-blog-header.php' (include_path='.:/usr/local/php5/php') in /home/sites/heteml/users113/0/1/f/01f-boy/web/pimp/index.php on line 17 と出てきてサイトが表示されません 。 wp-blog-header.phpがなにかあるのかと思い開けると下記のコードが書いてありました。 <?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; require_once( dirname(__FILE__) . '/wp-load.php' ); wp(); require_once( ABSPATH . WPINC . '/template-loader.php' ); } ?> しかし自分はphpがよくわからないためどこを変更すればhttp://0000.comでサイトが見れるのかわかりません。 教えてください。

    • ベストアンサー
    • PHP
  • WordPressのセキュリティ

    ロリポップ!、WordPress利用サイトで不正アクセスによる改ざん被害 -INTERNET Watch http://internet.watch.impress.co.jp/docs/news/20130829_613274.html >全ユーザーのすべてのwp-config.phpファイル(WordPressの設定情報が書き込まれたファイル)のパーミッションを変更する これはどういう意味がありますか?  >WordPress利用者の管理画面からの不正アクセスにより、データの改ざんや不正ファイルの設置がなされたという。 なのに意味がありますか?

  • WordPressの.htaccessについて

    こんにちは。 wordpressでマルチサイトの環境を設定しようとしています。 ネットワークの設置より、次のような.htaccessを/wordpress/ディレクトリに配置しました。 --- RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] --- このファイルを配置しなくても、 http://domain.jp/wordpress/wp-admin/network/setup.php や http://domain.jp/wordpress/wp-admin/network/users.php は表示されますし、 http://domain.jp/wordpress/ にアクセスすると1つ目のブログが表示されます。 しかしこのファイルを配置しない場合、新たに作成した2つ目のブログである http://domain.jp/wordpress/test01/ は表示されません。ファイルを配置した場合は表示されます。 しかし、ディレクトリを見ても/wordpress/にはtest01ディレクトリは存在しません。おそらくは何らかの転送を行っているのだと思いますが、上記の.htaccessファイルを配置した場合、 http://domain.jp/wordpress/test01/ はどういう法則で、どこに転送されるのでしょうか。 どなたか教えてください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • WordPressを複数インストールしたい

    質問させていただきます。 すでにWordPressをインストールしておりますが もう一つ、インストールしようと思ったのですが うまくいきません。 (1)WordPressのサイトから3.1.1をダウンロードしました。 http://ja.wordpress.org/ (2)フォルダ名を変えて(フォルダ名:wp2)サーバーにアップロードしました。 (3)フォルダのアクセス権を755に設定しました。 (4)アップロードしたところにアクセスしたら <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wp-blog-header.php'); ?> とでてきます。 どうすれば良いでしょうか。 よろしければ、アドバイスお願い致します。

  • Wordpress で不要なPHPがある場合は?

    外注により作成された Wordpress テーマを使いサイトを運用しています。 しかし、明らかに関係ないPHP(ページのテンプレート?)があり削除しても問題ないのか分からないため質問させていただきました。 具体的には、、、 wp-content/themes/***_wp/page-a***e.php というPHPファイルがたくさんあります。 中身をみると全く関係ない他社の内容が書かれています。 動作的に遅くなるとかあるようでした削除したいと思っていますがなにか問題となる事はあるでしょうか?

  • Wordpress初心者です

    wordpress初心者です。 wordpressを勉強しようとしていて、最初でつまづいてしまいました。 XAMPPを導入して、htdocs/wordpress/wp-content/themes/twentythirteen/index.php をhttp://localohst/wordpress/wp-content/themes/twentythirteen/index.php で表示させようとしたら、 Fatal error: Call to undefined function get_header() in C:\xampp\htdocs¥wordpress\wp-content\themes\twentythirteen\index.php on line 17 とエラーが出てしまって表示できません。何が原因でどのように対処すればよいのでしょうか? よろしくお願いします。

    • 締切済み
    • CSS
  • Wordpress2.9.1 テーマの管理でテーマ(テンプレート)が表示されません

    Wordpress2.9.1 を使用してます。 1.Wordpres用テーマ(テンプレート)を某サイトより (XXXX.zipファイルを)ダウンロード。 2.パソコンで(XXXX.zipファイルを)解凍。 3.解凍済みのファイル(XXX1,XXX2,・・・,XXXnフォルダー)を FFFTPソフトで、『/wp(WordPressのフォルダ)/wp-content/themes』 へ アップロード。 上記、1.~3.を実行したのですが、 メニューの「外観」→「テーマ」の画面でアップロードした「XXX1,XXX2,・・・,XXXn」のテーマ(テンプレート)が表示されません。 QA1.上記処理で何かおかしいのでしょうか? (「Wordpress2.9.1 」ではダメ等) QA2.メニューの「外観」→「テーマ」で表示させるよう    どこかテンプレートを設定しているファイルを変更する必要が あるのでしょうか? よろしくお願いします。

  • wordpressのサイトURLの変更

    http://www.○○○/ → http://www.○○○/blog index.phpの17行目を /** Loads the WordPress Environment and Template */ require('./blog/wp-blog-header.php'); ?> にすればいいのでしょうか? またindex.phpと.htaccessはどこにUPすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • wordPressのインストールが上手くいかなくて困っております。

    wordPressのインストールが上手くいかなくて困っております。 PHP5とapache2とmysql5をインストールし、wordpressのインストールに挑戦して いるのですがどうしても上手くいきません。 PHP・apache・mysqlはPHPのテキストに書いてあった通りの設定を済ましました。 wordpressをインストールするにあたり、wordpress用のデータベースも作成しました。 wordpressをZIP形式でダウンロードし、apacheのhtdocsフォルダ内に解凍しました。 wordpressフォルダ内にあるwp-config-sample.phpを複製し、名前を wp-config.php内のデータベースに関する設定も行いました。 ブラウザを起動し、「http://localhost/wordpress」とURL欄に入力すると、 添付画像のような画面が現れて、そこから前へ進めません。 ちなみに、htdocsフォルダ内に自作のphpファイルを作成してURLを入力すると、 正常に表示されます。 考えられる原因としてはどんなことがあるでしょうか?

  • wordpressにログインできなくなった

    wordpress phpにお詳しい方にお聞きします。 管理画面からwp super cacheを無効にした後、自分のサイトにログインできなくなりました。 入ろうとするとこのようになります。 http://asiantrip.secret.jp/ まったくの初心者なので何がなんだかさっぱりで困っています。 どなたかお詳しい方がいましたらご教授ください。お願いいたいます。