Posted on

WordPressのアップデートコントロール

WordPress3.7くらいからオートアップデート機能が実装されました。アップデートを怠って脆弱性を突かれることも激減しそうでとても素敵な機能だと思います。ただ、、ただ自分で制御したいこともあります。(よね)そんな人に朗報です。最初は、複数のWordPressを管理しているとオートアップデート後のメール通知が結構、邪魔に感じます。そこでUpdate Controlです。

以下のような設定を行うことができるようです。設定 > 一般 で設定することができます。

UpdateControl

Send Emails for Successful Updates? はアップデート成功時に通知するなので、オフにしました。Failed, Critically Failed はさすがに通知は受けた方が良いでしょう。

Posted on

プラグイン/テーマエディタの無効化

WordPress codexのwp-config.phpの編集に書かれているので記事にする必要はないのですが一応記載しておきます。WordPressの設定に DISALLOW_FILE_EDIT というものがあります。これは何かというと、本番環境でWordPressの管理者ページ内で、誤ってThemeを編集し、取り返しの付かないことになることって一度は経験したとこはないでしょうか?(私はあります)そうならないためにもこれはお勧めです。
wp-config.php に以下の1行を追加します。
[cc lang=”php”]
define(‘DISALLOW_FILE_EDIT’,true);
[/cc]

適用前:テーマ編集は表示されています
適用前

適用後:メニューから表示されなくなりました
適用後

外観 > テーマ編集 のメニューが表示されなくなりました。同じようにプラグイン > プラグイン編集のメニューも表示されなくなります。誤操作を防ぐだけではなく、攻撃者(第三者)がユーザーアカウントを乗っ取った場合の備えとしても活かせそうですね。

Posted on

Rails4のStrong Parameters

Rails4のStrong Parametersに関するメモ。新しくrailsのプロジェクトを作成し、rails generate 〜 すると自動生成されたController内がRails3系の時と変わっていた。生成後のArticlesControllerの一部。コメント等は削除しています。このArticlesControllerはブログのタイトル(title)と記事(content)だけを管理するシンプルなもの。

[cc lang=”rails” height=”580″]
class ArticlesController < ApplicationController before_action :set_article, only: [:show, :edit, :update, :destroy] def index @articles = Article.all end (省略) def create @article = Article.new(article_params) if @article.save redirect_to @article, notice: 'Article was successfully created.' else render action: 'new' end end (省略) private # Use callbacks to share common setup or constraints between actions. def set_article @article = Article.find(params[:id]) end # Never trust parameters from the scary internet, only allow the white list through. def article_params params.require(:article).permit(:title, :content) end end [/cc] 以前は、article_params なんてprivate method はなかった気がする。create、update action 時、paramsを受け取って対象となるカラムの操作を行っていた。ただ、更新して良いもの、更新させたくないものがあるので、それらの機能は model に attr_accessibleやattr_protected を設定していた。Article modelは以下のように書いていた。 [cc lang="rails" height="50"] class Article < ActiveRecord::Base attr_accessible :title, :content end [/cc] 去年話題にもなりましたが、Mass Assignment の脆弱性対策としての一環なんでしょうけれど。controller側ではなくmodel側でなんとかできたら良いのに..と思います。(controllerをすっきりさせたいという意味で、、ですが、機能的にはcontrollerの役目なのかな..)