Wordpressコアファイル汚染撲滅委員会総会



#開会に代えまして会長からのご挨拶

　　　　　　,,､,､､,,,';i;'i,}､,､
　　　　　　 ヾ､'i,';||i !｝ 'i, ﾞ〃
　　　　　　　　ﾞ､';|i,!　　'i i"i,　　　　　　 ､/__人_从人/し､_人＿入从人
　　　　　　　　 `､||i　|i　i　l|,　　　　　　､_）
　　　　　　　　　 ',||i　}i |　;,〃,,　　　 　_）　汚物は消毒だ～っ！！
　　　　　　　　　 .}.||||　| ! l-'~､ミ　　　　｀)
　　　　　　　　 ,＜.}||| il／,‐'liヾ;;ミ　　　'´⌒V＾'^Y⌒V^V⌒W^Y⌒
　　　　　　　　.{/ﾞ'､}|||/／　 .i| };;;ミ
　　　　　　　　Y,;-　　 ｰ､　　.i|,];;彡
　　　　　　　　iil|||||liill||||||||li!=H;;;ﾐミ
　　　　　　　　{　 く；ｧｿ　 '';;,;'' ﾞ};;彡ﾐ
　　　　　　　　 ﾞi　[`'''~ヾ. ''~ ||^!,彡ミ　 　＿,,＿＿
　　　　　　　 　 ﾞi　}~~　｝ ';;:;li,　ﾞiミミミ=三＝-;;;;;;;;;''
,,,,-‐‐''''''}￣~フハ,“二ﾞ´ ,;／;;'_,;,7''~~,-''::;;;;;;;;;;;;;'',,=''
　;;;;;;;;''''/_　 / | | `ー-‐'´_,,,-',,r'~ヽ';;:;;;;;;;, '';;;-'''
''' '　　,r'~ `V　ヽニニニ二､-'{ 十　）＿＿;;;;/



#鉄の掟３箇条
**1. コアファイルに直接手を入れる者は、運用を考慮しない脳筋と考えるべし**

**2. 他人のthemeファイルに直接手を入れる者も上記と同罪と心得るべし**

**3. プラグインには……う、うーむ、どーしてもってならバージョン管理すべし**


##明日のために・鉄の掟を破らないコツ
###汝、コアファイルを弄る前に「フィルターフック」「アクションフック」「定数」を調べるべし
世に出回る「ここのファイルをいじればいいですヨ！」の話は、案外と上記を調べていれば、解決できるものだ。コアファイルの独立性確保のために、まずはこれらを確認しよう。
[プラグイン API/フィルターフック一覧](http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7)
[プラグイン API/アクションフック一覧](http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7)

中には、定数を変更することにより対処できることもあるかもしれない。
[wp-config.php の編集　6 上級オプション](http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86#.E4.B8.8A.E7.B4.9A.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3)

###汝、コアファイルを弄る代わりにwp-config.phpとthemeフォルダのfunctions.phpを弄るべし
上記で調べたフックは、themeフォルダのfunctions.phpに記述するようにすること。
定数に関しては、wp-config.phpに記述すると良いだろう。

###汝、テーマファイルは子テーマを作るべし
テーマファイル、特に公式管理されているテーマに関数などを差し込む際、直接手をいれず、なるべく子テーマを作って対応しよう。子テーマに配置されたファイルは、親テーマの同名ファイルを上書きする。
できれば上述のfunctions.phpも子テーマにて作成して頂きたいが、注意が必要。
子テーマのfunctions.phpだけは「上書き」ではなく「追加」される。同名の関数などを絶対に入れないようにしよう。また、子テーマのものが読み込まれた直後に親テーマのものが読み込まれるなどの挙動にも注意。

###汝、プラグインに手を入れる前に代替手段を検討すべし
プラグインにもセキュリティアップデートは存在する為、なるべく直接ソースを弄るような行為は避けること。有名なプラグインの中には自前でフィルターフックやアクションフック、関数やクラスなどを提供しているものもあるため、プラグインの公式ページを確認しよう。「apply_filters」や「do_action」でプラグインフォルダ内を検索するのも手だ。手がないなら、そして可能ならば、代わりのプラグインを再検討するのもひとつの道。

###汝、致し方なくプラグインに手を入れる際はバージョン管理すべし
diff(差分)が確認できるよう、そして修正したパッチがすぐ適用できるよう、gitなどのバージョン管理を導入しよう。 wordpressで公式利用されているsvnでも良い。そして可能ならば、上述の子テーマも管理しとくと非常に便利。


#本会 開催の趣旨
Wordpressは今やブログ構築だけに留まらず、様々なシステムにて運用されているCMSの事実上業界標準とも呼ぶべき立ち位置になっている。その為、世間(googleという井戸の中)ではWordpressの構築や運用に関する様々な情報が、ブログや技術系ページにて記載されている。

しかし、ネットの情報は玉石混交。
それらの中には、「そのお困りごとなら、Wordpressのココのファイルに手を入れれば解決しますヨ！」などという舐めた文言が散見されたりもする。しかも、Wordpressをアップデートすると書き換わってしまうようなファイルを修正せよ、などという危うい記事も存在する。

昨今、Wordpressおよびそれらのプラグインに、多くの脆弱性が発見されており、定期的なアップデートは不可欠なものとなっている(実際、先日リリースされたWordpress4.0.1は危険度最高レベルのXSS脆弱性を修正したものであった)。

本会はそれらのコアファイルを直接操作するような運用・開発に警鈴を鳴らし、既にそのような運用を行ってしまった環境の汚物を消毒させるため、代替の策を提供する目的にて開催するものである。

##本記事の注意事項
かくいう僕自身、これらの運用をほぼ全て経験したことがある。
このような運用は、非常に危うい。Wordpressがクラッカーの標的にされるようになってしまった今だから、なおのこと(自前鯖での実験の話。wordpressの構築時にwp-config.phpを自動生成した直後、サイト名を入力する画面で１日放置してみた。あっちゅー間に乗っ取られた。シンガポールのグループからだった)。
だから一言で言えば、セキュアな運用を心がけよう、という主旨の記事である。

また、僕自身はそれほどwordpressおよびphpに関して知識が深い方ではなく、上記の記述に誤りや抜けている点があるかも知れない。もし気づいたら、コメントや編集リクエストを頂ければ幸いです。本当に。