🌈グラデーションを作成できる「バースデーグラデーション」を公開しました

https://birthday-gradation.com

最初はInstagramで集客できるWebアプリケーションは何か出来ないかな? と考え始めたのがきっかけでした。

Instagramは全く使ってこなかったのですが、Twitter周りの運営が怪しくなってきたのと、InstagramのストーリーズでURL共有が出来るようになったので上手く使いこなしたいなと。

それと、アプリケーションの開発は出来るのですが集客の仕組み構築だったり集客の仕方が自分の中で全く足りていなかったので「集客するためには」を念頭にシステム開発してみる。というのが目標でした。

Twitterだと診断系がWebアプリケーションとして共有されやすいですが、Instagramではあまり診断系は共有されていないようす。

Instagramで共有されやすい項目として、「どこそこ行った」「YouTube/TikTok更新した」「この本/グッズ発売した」「イベントやるよ」などで、割と自分の事や素の部分を共有されていて「この記事でこう思った」「この話題で興奮した!」みたいなTwitterでよく見るURL共有はあんまり需要ないかなと。

過去、診断系で流行った事はないのかと調べると「バースデーカラー診断」が見つかりました。
http://birthday-color.cafein.jp
診断サイトでは無いものの、誕生日から色がわかる占いサイトでした。URL共有というかスクリーンショットで共有して「自分もやろう」とGoogle検索してたどり着くサイト。

Twitterと違って、診断系でランダムに表示された物で楽しむよりも、なんとなくでも自分の事の占いなんかであればスクショ撮って共有したくなるのかなと。

Instagramはアプリの仕組み上URL共有はしにくいので、そこはメインにしないで、スクリーンショットで共有したくなるのをメインに構築。検索しやすいワードでサイト名を決めました。

占いの需要をあまり理解していなかったのですが、どうやら人間関係の悩みを解消するのに役立つらしく

  • 自分ではどうする事も出来ない相手
  • 自分はどうすれば良いか

という行動できない時の気の持ちよう、行動するために背中を押して欲しい、という2パターンがあるみたいです。

この人間関係を解消する、もしくは気の持ちようを変える事ができるように、相手との相性が確認できるように、グラデーションにしてみよう。という流れで作りました。

将来的には「芸能人の〇〇と××のグラデーション」が匿名で登録できて、URLで共有できるようになれば広がりが出て楽しそうなので作りたいところ。

今はグラデーションの表示だけで、認知されるようになってから改修してもいいかなと。きちんと使われればラッキーで、使われなければ別の新しい何かを始めたいなと。

人間関係の悩みがある人は使ってみてください!

https://birthday-gradation.com

🎭 2020年 霜降り明星の神回ポッドキャストまとめ

https://blog.hatenablog.com/entry/2021/01/22/120000

こちらの記事を読んで、2020年は本当にラジオが面白かった。

家で過ごす時間が多くなった2020年だったけど、ラジオは毎週放送されてリモートだったり環境は変われどいつものパーソナリティが今の状況や気持ちを話してくれるだけで気持ちが落ち着いた。

私は霜降り明星ANN0のリスナーでもあるので上記の記事で取り上げられているポケットの秘密2時間スペシャル、ツッコミ千本ノックも聞いて本当に楽しませてもらっていた。

霜降りANN0は公式からポッドキャストでも配信されているので今からでも対象の放送回を聞く事ができる。せっかくなのでプレイリスト形式にしてみたので皆さん聴きましょう。

https://lnns.co/WI5D6RUpr_9

ブラウザで聞くこともできますが、ポッドキャストとしても配信されているのでRSSで追加できるアプリケーションを使って購読すればスマホで聞きやすいと思います。

「他にもこの回が面白かった」など追加してほしい回がある方はコメント等で連絡してくれれば追加します。

🧶夢中になると生活が出来なくて後悔してしまう

あえてセーブしている感覚がある。

何かに集中して周りが見えない状態がすごく楽しくて、常にその状態になっていたいんだけど、その夢中になっているとご飯を食べたり掃除をしたり生活をするのがままならなくなって後悔してしまう。

もっと色んな事をちゃんとしたい気持ちがあるし、スマートに生活していきたいんだけど夢中になってしまうとそれが出来なくなる。

ある程度自分なりに健康で過ごすためには運動したり油っこいものを食べないとか加減がわかっている。その加減のバランスを見て気分良く毎日過ごすためにしなければいけないこと、が夢中になると出来なくなる。

夢中になりたくないけど、夢中になると楽しいのでたまには夢中になれる状況にするために気分良く毎日過ごすためのやらなきゃいけないことをストックしておいて、やらなくて良い時間が延ばせるようにしているけど限度がある。

あんまり夢中になりすぎないように、刺激がない所に住もうとちょっと田舎の方に住んで集中できる環境に身を置くようになったけど、それをしないで済む人が羨ましくもある。ずっと刺激があるところに居ても大丈夫な適正があるんだろうな。

夢中になりたいけど後悔しないように、そもそも夢中にならないで済むやり方で出来るようにしている。なんか面倒くさいですね。

💝優しくする事を重視するからややこしくなる

あけましておめでとうございます。

今この記事を書いている日は1月5日と正月三が日が終わった所なのですが、正月気分は終わっていないので今年の目標や去年の振り返りを書き綴ってみようと思います。

去年は「自分のメリットを見極める」
今年は「メリットのためにブランディングを行う」

で行こうと思っています。どうぞよろしく。

以前までは1年の初めに今年やる事100個を並べたりしていたのですが、やる事に追われてしまうと焦りが出てしまったり多すぎると終わらせるモチベーションがなくなってしまったので、今年はざっくりとした目標を上げてその時に出来ることを着実に実行していこうかなと。

去年の振り返りとして、過去の自分の行動原理は「人に優しく」をモットーに行動していたつもりなのですが、自分自身の未熟さや偏見、行動する主軸となるものも不明確だったため、人に対して押し付けの優しさになってしまう場面が多々あったかなと考えるようになりました。

優しくしようと考えるあまり、自分のメリットを度外視して行動して勝手に疲れて見返りを求めてしまう場面が出ていました。自分がやられたとしたらちょっとした恐怖ですね。優しくする事は良い事のはずなのに、優しくしようとするあまり自分自身が不幸せになっていました。

映画やドラマでは「自分のメリットで行動するのは悪」「人に優しくすることが正義」みたいに伝えてくる作品が多くあると思いますが、あくまでフィクションであり、そのまま受け取ってそのまま実行するのは違うかなと。

優しくするなとは言いませんが、自分のメリットを度外視して行うのは自分を守れなくなるので、自分自身のメリットを先に考えてから人に優しくする、二宮尊徳の言葉を借りれば「道徳なき経済は犯罪であり、経済なき道徳は寝言である」ということだと思っています。個人に対して当てはめるとメリット=経済になると考えています。

身近な例を挙げるとYouTubeの違法動画が当てはまると思います。テレビ番組を録画したものを上げてもテレビ番組の制作者ではないため収益化する事はできず、制作者からは作ったものを悪用したと捉えられて嫌がられて、動画を上げた人にとっては再生回数を見て満足感を得られるから上げるのでしょうが、テレビ番組という経済活動の産物を道徳なく上げているため犯罪になります。

映画スパイダーマンが好きなのですが、主人公のピーターパーカーはニューヨークの人々を無償で助けるが自分は生活が成り立たなくなって不幸になる。美談のように演出はしていますが、映画という経済活動の中で道徳を演出しているというメタ情報をちゃんと認識しましょう。

そういった心境の変化もあったため、去年は優しくする前に「自分のメリットを見極める」事を重視して行動してきました。

冷静になるとシンプルなもので、人との関係形成時にお互いにメリットがある話ではないと感じれば関わりを断つというだけでイライラしたりストレスを感じない穏やかな生活が送れたなと思います。

今年はそれをアップデートするために個人としてのブランディングを明確にしていきたいと思います。「これが自分にとってメリットですよ」と声を上げて判りやすくすれば、お互いのメリットを重視してくれる人に伝わりやすく良い繋がりになるので。

今年もよろしくお願いします。

🆙定期的に安全なWordPressの更新方法の解説

前回の記事でWordPressを最新に保つために自動更新を有効にする事をお勧めしましたが、自分はプラグインの automatic-updater を使用しているばかりで、他の人に説明できる資料を用意していなかったのでまとめておこうと思います。

そもそもの議題として「更新する必要があるのか?」という点があると思いますが、WordPressは自分で管理をする必要があるWEBアプリケーションなので更新作業が必要になります。例えるならば自動車のオイル交換が必要のように、定期的にアプリケーションを最新版に更新していれば起動速度が速くなったり故障(データ流出や悪意あるサイト内容の改変)というトラブルが回避できます。

自分自身でアプリケーションを開発するのであればWordPressで行う以上の労力が必要になりますし、どうしても更新をする手間を省きたいのであれば既存のプラットフォームに乗り換える選択肢があります。そうなると料金的なコストが上がるのと習得する時間が必要になり自由度が下がり、使い続けるためにはプラットフォームが存続し続けてもらう必要があるので、ご自分が必要となる目的に合致するものを選んでもらう必要があります。

本記事ではWordPressの更新方法さえ覚えてしまえば上記の選択が不要になると考えています。インターネット上で効果的な情報発信を覚えるためにはWordPressの更新方法を覚えておくのは重要なスキルだと考えています。そのための参考資料になれればと思います。

WordPressが挿す「自動更新」の意味合い

まず初めに、WordPressの自動更新についてですが、主に2つの意味合いで使われています。

  • 管理画面上でクリックして更新する機能名「自動更新」
  • 何もしないで最新版が来たら勝手に更新してくれる機能「自動更新」

となっていてややこしいものになっています。

同じ名称ですが実行される処理は若干違い、何もしない場合の自動更新は「マイナーアップデート」が行われます。

マイナーアップデートを解説するためには、バージョン番号の区分が2つあり、

  • メジャーバージョン
  • マイナーバージョン

が存在しています。2020年11月19日 の最新リリースである 5.5.3 を例にすると

  • 5.5.x の数字部分がメジャーバージョン
  • x.x.3 の数字部分がマイナーバージョン

となっています。

そのため、「何もしないで最新版が来たら勝手に更新してくれる自動更新」は x.x.3 の最新版を更新してくれるものになります。これはWordPressをインストールするとデフォルトでONになっている自動更新機能になります。

マイナーバージョンとはセキュリティアップデートのみを対象にしており、基本的な機能の変更はされません。なのでアップデート後にエラーが発生する確率は最小限に抑えられているものしか更新がされません。

WordPressは常に最新版の使用を推奨していますが、過去のメジャーバージョンにもセキュリティパッチが更新されているので管理画面から更新を行わずとも最新のセキュリティパッチが当たったものに更新されていきます。

たとえば 現状の最新メジャーバージョンは 5.5 ですが、過去の 5.3 に対してもマイナーバージョンを上げるリリースが行われています。

セキュリティパッチが更新はされていますが、WordPressの開発としては最新メジャーバージョンを使用した保守しか行っていないので、過去のメジャーバージョンの安全は保証されていません。なので常に最新版に更新していく必要があります。

以上がWordPressの自動更新の概念の話。これが対象となるのはWordPressソースコードのコア部分と翻訳ファイルの話です。テーマとプラグインは分割されており、自動更新の対象外になっていました。

最新版のWordPress 5.5 メジャーバージョンからは事情が変わり、テーマとプラグインの自動更新機能が追加されたので管理コストが少なくなったはずです。

ここまでが前提情報になります。以降は「じゃあアップデートする方法はどうするの?」を書いていきます。

メジャーバージョンも完全自動更新

WordPressは x.x.3 のマイナーバージョン部分はデフォルトで自動更新されると書きました。では 5.5.x のメジャーバージョン部分も自動更新されるように設定していきます。

これは自分が取っているいつもの手法になります。更新後にメール通知が来るので問題が無いか確認して、問題があればバックアップからの復元や問題の解消などを行います。

あまりアクセス数が無い場合や、ある程度のサイト表示が出来なくなる事も許容できる時にこの手法をとることをお勧めします。労力を最小限に出来るメリットがあります。

お勧めはプラグインを使用する方法です。https://wordpress.org/plugins/automatic-updater/

プラグインを入れて設定画面でメジャーバージョンの更新をチェックを付ければ完了です。アップデート後はメールが届くように設定をしておき、アップデートの度にサイトを確認して正常に表示される事を確認しましょう。

経験則的にはcssやjsのminify系のプラグインやキャッシュ系のプラグインでエラーが起こり易い印象なので
(ちゃんと保守されていない物だった可能性はありますが。)
無闇にプラグインを入れないようにしたり、信頼できる情報元以外がお勧めしているものは入れなかったり、バックアップを取っておいて復旧手順を確立しておく事をお勧めします。

プラグインが原因で表示されなくなるぐらいだったら最悪プラグインの使用を停止したり、あまり独自機能に依存しすぎない運用をしておきましょう。

プラグインを使用しないで自動更新をさせるには、PHPファイルで指定する方法もあります。

add_filter( ‘allow_major_auto_core_updates’, ‘__return_true’ );
add_filter( ‘auto_core_update_send_email’, ‘__return_true’ );

こちらは独自テーマを使用していたり子テーマに入れたりプラグイン化して読み込ませましょう。テーマファイルに記載するとテーマ更新時に記載がなくなります。

メジャーバージョンの手動更新

こちらは管理画面上で行う更新方法です。

ダッシュボード -> 更新 -> 「いますぐ更新」のボタンをクリックすればお終いです。一般的な更新方法です。

管理画面に表示される通知を確認した時に実行したり、WordPressのリリース情報をチェックしておく必要があります。

基本としてはこれだけですが、「何かあった場合に巻き戻せるように」「可能な限り安全に」「更新中のダウンタイムを事前に通告したい」場合の最大限問題が発生しないようにする手順は以下になります。

  • 更新を周知(他の管理者や訪問者等、必要と感じる人へ)
  • メンテナンスページの表示
  • バックアップの作成
  • バックアップを使用してローカル環境(もしくはステージング環境)で更新のテスト
  • 使用しているプラグインを全て無効化
  • WordPressの更新、「いますぐ更新」のボタンをクリック
  • 停止したプラグインの使用を有効化
  • 動作確認
  • メンテナンスページの解除

詳細な操作方法はバズ部のこの記事を参照ください

メンテナンスページの表示やバックアップの作成、確認環境の作成が必要になります。

コマンドラインの知識がある人はwp-cliの使用も可能です。メンテナンス表示やバックアップの作成、コマンドでアップデートの実行も行えるのでbashファイルにまとめてしまえば手順の簡略化も可能です。cronに仕掛ければ完全自動更新も可能です。

以上、WordPressの更新方法になりました。
WordPressの更新手順はとても簡略化されており、とても簡単になっています。強いて上げるならバックアップの作成方法や復旧方法も明確になっているとより親切かなと思いますが、それはご自分で作成した方が発生した問題に柔軟に対応できるようになるのかなと考えます。更新手順の記事としては以上になります、お疲れ様でした。

その他

自動更新関連は停止するための情報が多く出てきますが、なぜ自動更新がデフォルトで有効になっているかを考えて、停止した場合のデメリットや対応方法を考えて実行していきたいものです。更新できるようにシステム構築していかなければなりません。

ちなみにこの記事をまとめた情報元は個人的に信用している公式のwordpress.orgの物や、バズ部、capitalpを元にしています。

🔐WPScanを使ってWordPressのセキュリティ改善をする方法

最近の技術トレンドとしてはJAMstackが熱いらしいという情報をキャッチしまして。静的コンテンツジェネレータ自体はjekyllやOctopressが流行った辺りから導入していましたがコンパイルする手間が面倒に思えてしまってWordPressを使う機会がちょこちょことあります。やっぱりブラウザで完結するのは楽なんですよね。

JAMstackのメリットである「静的コンテンツを公開しているからセキュリティが高い」というのは理解が出来るのですが、農家が田んぼに農作業に向かうためにスーパーカー乗る必要はないのと一緒で、ある程度はセキュリティに寛容になって楽した方がいいよね派ではあります。全部が静的コンテンツにすべきってのは乱暴かなと。

かといってセキュリティを意識しないのは違うので、サーバー内で動的コンテンツを出力するメリットを得つつ可能な限りのセキュリティを高める方法ってどんな事出来るの? ってのを具体的にするために、私が管理しているWordPressサイトのセキュリティチェックと対応方法をまとめていこうと思います。お決まりの対応方法が存在するWordPressの知見はアプリケーション開発の現場で活用できるかと思います。

使用するツールはWPScan。Rubyのgemとして公開されているコマンドラインツール、WordPressのコアやプラグインの脆弱性を確認してくれます。こちらのツールは他人のサイトに実行してしまうのは厳禁です、悪意あるアクセスと思われてしまいます。

そのため、対象のサイトは私が管理しているこちらのサイト

https://soramugi.net

自己紹介のために作成したサイトです。
2020年11月16日 時点で最新のWordPress version 5.5.3
公式テーマを使用しつつ子テーマを作成して微調整、プラグインも公式のみ使用しています。
自動更新はONにしたままなので全て最新の状態になっています。

セキュリティ系のプラグインとしてSiteGuardの導入を行っています。ログインページのアクセス制限や画像認証、ログインページURLの変更などができるため、各種レンタルサーバーで導入が推奨されています。

設置しているサーバーはレンタルサーバーのxserver、VPSに置いてもいいんですがOSのアップデートとか面倒なのでレンサバです。共用サーバーだけどSSH可、無料SSL対応、CPU 40個にメモリ188Gのサーバーを月1000円でアプリ置き放題でMySQLのDB無制限のメール送受信可のcrontab弄れるのは個人的に熱いです。

WPScanの実行結果

$ wpscan --url https://soramugi.net
_______________________________________________________________
         __          _______   _____
         \ \        / /  __ \ / ____|
          \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
           \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
            \  /\  /  | |     ____) | (__| (_| | | | |
             \/  \/   |_|    |_____/ \___|\__,_|_| |_|

         WordPress Security Scanner by the WPScan Team
                         Version 3.8.7
       Sponsored by Automattic - https://automattic.com/
       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[+] URL: https://soramugi.net/ [183.90.238.7]
[+] Started: Mon Nov 16 17:17:59 2020

Interesting Finding(s):

[+] Headers
| Interesting Entries:
|  - server: nginx
|  - x-mod-pagespeed: Powered By mod_pagespeed
| Found By: Headers (Passive Detection)
| Confidence: 100%

[+] robots.txt found: https://soramugi.net/robots.txt
| Interesting Entries:
|  - /wp-admin/
|  - /wp-admin/admin-ajax.php
| Found By: Robots Txt (Aggressive Detection)
| Confidence: 100%

[+] XML-RPC seems to be enabled: https://soramugi.net/xmlrpc.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
| References:
|  - http://codex.wordpress.org/XML-RPC_Pingback_API
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner
|  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access

[+] WordPress readme found: https://soramugi.net/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%

[+] This site has 'Must Use Plugins': https://soramugi.net/wp-content/mu-plugins/
| Found By: Direct Access (Aggressive Detection)
| Confidence: 80%
| Reference: http://codex.wordpress.org/Must_Use_Plugins

[+] The external WP-Cron seems to be enabled: https://soramugi.net/wp-cron.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 60%
| References:
|  - https://www.iplocation.net/defend-wordpress-from-ddos
|  - https://github.com/wpscanteam/wpscan/issues/1299

[+] WordPress version 5.5.3 identified (Latest, released on 2020-10-30).
| Found By: Rss Generator (Passive Detection)
|  - https://soramugi.net/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/comments/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/feed/podcast, <generator>https://wordpress.org/?v=5.5.3</generator>

[i] The main theme could not be detected.


[i] Plugin(s) Identified:

[+] contact-form-7
| Location: https://soramugi.net/wp-content/plugins/contact-form-7/
| Latest Version: 5.3 (up to date)
| Last Updated: 2020-10-21T10:25:00.000Z
|
| Found By: Hidden Input (Passive Detection)
|
| Version: 5.3 (100% confidence)
| Found By: Hidden Input (Passive Detection)
|  - https://soramugi.net/, Match: '5.3'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/contact-form-7/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/contact-form-7/readme.txt

[+] seriously-simple-podcasting
| Location: https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/
| Latest Version: 2.4 (up to date)
| Last Updated: 2020-11-09T15:30:00.000Z
|
| Found By: Meta Tag (Passive Detection)
|
| Version: 2.4 (100% confidence)
| Found By: Meta Tag (Passive Detection)
|  - https://soramugi.net/, Match: 'Seriously Simple Podcasting 2.4'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/readme.txt

[+] wordpress-seo
| Location: https://soramugi.net/wp-content/plugins/wordpress-seo/
| Latest Version: 15.2.1 (up to date)
| Last Updated: 2020-11-02T14:14:00.000Z
|
| Found By: Comment (Passive Detection)
|
| Version: 15.2.1 (100% confidence)
| Found By: Comment (Passive Detection)
|  - https://soramugi.net/, Match: 'optimized with the Yoast SEO plugin v15.2.1 -'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/wordpress-seo/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/wordpress-seo/readme.txt


[i] No Config Backups Found.

[!] No WPVulnDB API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up

[+] Finished: Mon Nov 16 17:18:03 2020
[+] Requests Done: 23
[+] Cached Requests: 36
[+] Data Sent: 8.208 KB
[+] Data Received: 70.311 KB
[+] Memory used: 245.828 MB
[+] Elapsed time: 00:00:03

基本的には 「[!]」で表示された内容に対応すれば問題なく、上記のログをみた限りでは全く問題がないサイトになります。

(APIトークンを使えと言われてますが自分の場合は同じ出力結果になったため今回は使用してません、回数制限があるのであまり使いたく無い…)

WordPressは自動更新と公式テーマと公式プラグインを使って必要かどうかを精査しておけばセキュリティ的には問題ないものになっています。

問題は無いのですが、出力された内容は「こういう情報が取得できましたよ」というものになるため、せっかくなので非表示にする対応や情報表示される理由を確認して悪用される種を摘んでおこうと思います。(この記事の本題)

ヘッダーの値削除

[+] Headers
| Interesting Entries:
|  - server: nginx
|  - x-mod-pagespeed: Powered By mod_pagespeed
| Found By: Headers (Passive Detection)
| Confidence: 100%

リクエストヘッダーの値が確認できます。実行アプリケーションが確認できれば攻撃方法も特定しやすくなるため非表示にしてみます。

xserverはnginxが起動していますが、.htaccess が使用できます

.htaccess に以下を追加

Header unset x-mod-pagespeed

Serverの記述削除は効かない?ようなので未対応

DoS攻撃対策

本格的なDoS攻撃をされた場合にはアプリケーションレベルでの対応ではどうしようもないので基本的には不要ですが、高負荷になりやすい箇所の理解のためにも使用できる対処を施します。

xmlrpcの無効化

[+] XML-RPC seems to be enabled: https://soramugi.net/xmlrpc.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
| References:
|  - http://codex.wordpress.org/XML-RPC_Pingback_API
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner
|  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access

モバイルアプリからの更新のためにxmlrpcを使用するため存在しているファイルですが、DoS攻撃に悪用されてしまう可能性がある機能です。モバイルアプリからの更新は行わないので無効にします。

.htaccessに以下を追加

<Files xmlrpc.php>
order deny,allow
deny from all
#allow from xxx.xxx.xxx.xxx # アクセスする必要が出たらIP指定
</Files>

wp-cron.php 無効化

[+] The external WP-Cron seems to be enabled: https://soramugi.net/wp-cron.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 60%
| References:
|  - https://www.iplocation.net/defend-wordpress-from-ddos
|  - https://github.com/wpscanteam/wpscan/issues/1299

WordPressでの予約投稿をした場合、指定時間での公開をチェックするためにユーザーアクセス時に wp-cron.php が実行されます。これもDoSに悪用される危険があるため無効化、予約投稿やバックアップの処理、自動更新もwp-cronで実行されるのでサーバー内のcronで実行するように変更します。

wp-config.php

<?php
define('DISABLE_WP_CRON', 'true'); # 先頭に記載しないと無効にできない

crontab

* * * * * /usr/bin/php7.4 /path/to/wordpress/wp-cron.php > /dev/null 2>&1

.htaccess

<Files wp-cron.php>
order deny,allow
deny from all
#allow from xxx.xxx.xxx.xxx
</Files>

バージョン情報の削除

[+] WordPress readme found: https://soramugi.net/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%

[+] WordPress version 5.5.3 identified (Latest, released on 2020-10-30).
| Found By: Rss Generator (Passive Detection)
|  - https://soramugi.net/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/comments/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/feed/podcast, <generator>https://wordpress.org/?v=5.5.3</generator>

自動更新を有効化して常に最新にしていれば問題ありませんが、古いバージョンの脆弱性を突くための確認をさせないためにバージョン情報を表示させないようにします。(意味あるのか?)

バージョン情報を削除しすぎてしまうと更新時のキャッシュ廃棄がうまくいかずに、表示崩れやバグの原因になる可能性もあるのでほどほどに。

.htaccess

<Files readme.html>
  Require all denied
</Files>
<Files license.txt>
  Require all denied
</Files>

functions.php (子テーマの作成、もしくはプラグイン化を推奨)

// rssのURLに出力されるversionの無効化
add_filter('the_generator', '__return_empty_string');

プラグインのバージョン表示もありましたが、プラグイン毎にバージョン非表示用のメソッドは用意されていないため、こちらは対応見送り

contentのディレクトリ変更

プラグインディレクトリへの直アクセスが可能になっています。脆弱性が発見されているプラグインへの直アクセスを狙われる可能性もあるためcontentディレクトリを変更します。

wp-config.php

define('WP_CONTENT_DIR',  dirname(__FILE__) . '/contents');
define('WP_CONTENT_URL',  'https://' . $_SERVER['SERVER_NAME'] . '/contents');
define('WP_PLUGIN_DIR',   WP_CONTENT_DIR . '/plugins');
define('WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');
define('WP_PLUGIN_URL',   WP_CONTENT_URL . '/plugins');
define('WPMU_PLUGIN_URL', WP_CONTENT_URL . '/plugins');
define('PLUGINDIR',   WP_CONTENT_URL . '/plugins');

robots.txt

あとはrobots.txtに記載があるというこのメッセージ

[+] robots.txt found: https://soramugi.net/robots.txt
| Interesting Entries:
|  - /wp-admin/
|  - /wp-admin/admin-ajax.php
| Found By: Robots Txt (Aggressive Detection)
| Confidence: 100%

はおそらく対象パスにファイルがあることを記しているということになりますが、この記述を消したところで意味はなく、ajaxの機能を除外するのはコストが高すぎるためスルーです。

終わりに

以上です。
セキュリティチェックは一度対処して終わりでは無いため、自動更新の有効化をしたり最新の情報を定期的に収集することをお勧めします。WordPressは特定バージョンへのセキュリティパッチは存在しないため、常に最新に保つようにしましょう。

WordPress.orgニュース
https://wordpress.org/news/
脆弱性一覧
https://wpscan.com/wordpresses

🤔人に優しくする価値観がズレてきている?

最近は目的を達成するために手段を探して行動していくなかで、どうにも噛み合わない事が気になっている。

最初に目的や役割を提示したとしても理解したつもりになって手段の是非や自己紹介ばかりで進まずに一人喋り(独り言?)を続けられてその人のプライドを優先する行動になってしまって目的を達成できずにお流れになってしまうことが多々あった。

合わない人だったなと気持ちを切り替えてもう一度他の人とやり直しをするのだが、事前に察知できる経験値の積み立てや会話の掛け合いで消費する時間を少なく出来るのではと考えてしまう。

相手に求める事といえば「少しだけ未来を見据えた行動ができているか」だと思っていて、会話の中でもふわっと喋ってどこに着地するかわからないで喋り続ける人はあまり良く無いなとか。そのタスクを完了したら何かが便利で汎用的になるけども、それだったら一言で済むよねとか。

自分が「少し未来を見据えた行動」が過去出来ていなかった反省があるからこそ、少し未来は見据えて行動していきたいしそれがお互い出来るようにしたいよねと。

そのために目的を明確にシンプルに、お互いが達成すべき物をわかり易く。「凡だから却下」と言う変な人も居たけどよくよく聞くと目的と手段の違いがわからず着地点もない事を言い続けて何を伝えたいのか2時間かけても不明だったので「そうですね〜」と言ってこれ以上の関係を持たないほうが良いなと切り替えた。

「少し未来を見据えた行動」を取るためには目的や役割が必要だと思っていて、それが無いと受け身で他力本願と他責思考なので関わると兎に角やる事が増えて労力に見合わない損な状態になってしまうなと。

たとえば以下のような「何か役割が貰えて目的のスイッチが入る」人は案外多いんじゃ無いかなと思うし、自分もその部分があるが、それが関わる項目の全てとなってしまうと少しキツイものがある。

この

  • スイッチ = やる気
  • 役割や目的を見つけられない = 能力がない人

と読み替えると、このツイートにも当てはまる事かなと思う。

自分なりに落とし込んだ結果はダークナイトのトゥーフェイスかなと思ったり

というのも「目的と役割が無くてやる気がある人」と言うのは「人に優しくしよう」と心がけている人で、人の目的にすがりついちゃう人なんですね。

自分自身の目的や役割が無いから困ってる人に優しくする良い人。

だけど目的が「優しくする」なのでリターンが無くて当然で「無性の優しさ」が正しい姿だと思って続けてしまう。感謝の言葉は言われるだろうけど優しすぎて頑張りすぎて疲れて余裕がなくなってしまう。そうするといつもならどうでも良いところが引っかかってしまうし、それが続くと怒るようになって人に冷たく当たってしまう悪い人になってしまうなと。

ダークナイトはジョーカーがハマり役すぎるので、あまりトゥーフェイスにスポットは当たらないけど、彼は本当は良い人だったけどジョーカーにつけ込まれて悪人になってしまうというキャラクター。

インターネットやSNSのおかげでキラキラしている活力ある人はすぐ見つかるようになりました。それを見ていると「何者かにならなくてはいけない」と考えるのが自然な世の中になっています。

そんな中で目的や役割がわからない状態でとにかく「人に優しく」を強く掲げてしまうとそれ自身が目的になって疲弊して人に冷たく当たる人が量産されてしまう「少し先の未来」があるなと感じます。

「無性の優しさ」って美談になるんですよね。

アメコミのヒーローなんてまさにそうで、初期のスパイダーマン映画なんかは自分の生活全てを犠牲にして優しい事をしている。そして何かが起こった段階で初めて行動する受け身な状態。好きだけど、好きなんだけどそうはなれないなと。

アメコミにもそれぞれのヒーロー像があって、その中でもシャザムは他人に対する「無性の優しさ」じゃなくて自分や家族を優先して力を使うって考え方の方が良いな。

この初期のスパイダーマン映画のような「自己犠牲」が強く出ている「人に優しい」姿はあまりマッチしないというか、インターネットが無くて関わる人が少ない時に必要だった価値観のような気がしていて、現代のような関わる人を自由に選べる状況にはマッチしないよねって。「人の嫌な事をしない」の方が合ってる気がします。

「人に優しく」を根っこのほうにもっていると息苦しくなるし、人に冷たく当たる人になっちゃうんじゃないかなと思います。

優しくするなでは無く、優しくしなくちゃ、が基盤にあるのはいくないなと。人に優しくする情報に多く触れすぎたせいなのか、そればかりを重要視するのは改めなければと思う最近。

✅目的を作るのが下手

最近よく考えるのが「目的を作って淡々とこなす」ということで、それが今までの自分は本当に下手だったなと。

今までは目的はなくとも目的を立てた人に依存するという事をしていたなと感じています。自分が出来る事をわかりやすく宣伝したり、出来る事をとにかく増やす事をしていたんだけど、そうなると自分がやる事が増えるだけで楽にならない。

人の目的にすがりつく存在、とでも言うのか、目的が無い事を否定しないで「あなたのためになる事をする優しい人」になろうと努力していた。

それはそれで良いのかもしれないが、それを行う事で得られる結果が自分自身で納得出来ないというか、努力量と比べるととても少ないものに思えてしまってやり方を間違えていたなと反省。

勝手に手伝っている人が勝手に不満を言い出したからそれはやられた方はたまったもんじゃ無いですね。優しくあろうと思う事が先行し過ぎてしまった結果なのかなと。

それを踏まえて最近はどうしているのかというと

究極は「不労所得」が欲しいのと「音声関連で面白いこと」が出来れば良いなと考えているなとまとまってきたので、そのための目的や目標を作って行動あるのみ。

今すぐに出来る事だけをこなすのは性に合わないというか、なるべく中長期的な物だったり将来性として繋がる事を厳選して無闇に疲弊しない個数を考えたり。

「続けるためにはどうすれば良いか?」を考え自分自身のバロメーターを見直しながら「自分の速さで」「自分でしか出来ない価値で」を実践して改善している日々。

言葉としては理解していたことのはずだったけど、感覚としてわかっていなかったのがやっとわかってきた。自分の事がまだ全然わかってないしそれを探るのが楽しくなってきた。

下手だけど、解らないけど、少しづつ解るようにするための目的を作ってこなしていく。

💪運動が嫌いな私がトレーニングを1ヶ月継続できた理由

縁があり4月からyaottiさんが進める自宅トレーニングを始めていました。

運動不足解消とメンタル安定化のための、自宅トレーニングのすすめ – 具体的な方法と習慣化の工夫|やおっち@Coachat🐢|note

結果としては「気分が良くなり、続けられる」という印象で人に進めたい経験でした。

今回は1ヶ月間の自宅トレーニングの振り返りをして自分自身の中で何がどうなったのかを書いていきたいと思います。

基本情報

まず初めに、4月時点での対象者である私についての基本情報や心構えを書いていきたい。

  • 30代男性
  • プログラマー
  • インドア派
  • 運動に興味がない
  • 持久力がなくなり体力の衰えを感じる

最近は集中力がなくなり刹那的な感情の高まりを利用して物事を終わらせる事が出来なくなってきた。主に身体的な不調が原因だったため、改善するために物事のやり方を見直したりジムに通い出してトレーニングを始めたがジムは挫折中、別の個人的な目標を達成するまでジム通いはお休みしている最中。

トレーニングに興味はあったのでTwitterでお勧めされていた本を購入したらトレーニングサポートに誘われたため「受け身でなら出来るかも?」と了承した。

これがその時のツイート

トレーニングメニュー

詳細なサポート内容やトレーニング方法はyaottiさんが書かれた記事を参照してもらいたい。ベースとしては書籍のプリズナートレーニングでの器具を使わない「自重トレーニング」のメニューを組み、朝起きたら実行。

以下のメニューを実行している

  • 月: プッシュアップ
  • 火: スクワット
  • 水: レッグレイズ
  • 木: プッシュアップ
  • 金: スクワット
  • 土: レッグレイズ
  • 日: 休息日

ポイントとしては絶対にSTEPを飛ばさないで順番に実行する、ということを意識した。

プリズナートレーニングの中では難易度が低いものをSTEP1として初心者、中級者、上級者のゴールが設定されてSTEP10までの掲載がされている。

STEP1は大抵の人であれば軽くこなせる内容なので「自分ならSTEP3からやろう」と始めてしまう。だが、それは途中でトレーニングを途中で辞めてしまうダメなパターンとして紹介されていて筋肉が追いつく前に限界が来て進捗が得られずに挫折してしまう結果になるらしい。

運動嫌いだったがジム通いを始めた時に図書館で借りた本の一節を引用しておきたい。

うまく行く人は一見スローな感じがする

気負いや焦りがない分、あまりやる気になっていないように見えるが決してモチベーションが低いわけではない

アドバイスを受けたらそれを信じてやる

一度に多くのことを変えないし一度に多くを望まない。

「しばらくの間はトレーニングに慣れることを目標にしよう」と考える

仕事ができる人はなぜ筋トレをするのか (幻冬舎新書)

朝起きてからすぐ実行するのは最初は苦痛だったが、他に邪魔されるイベントがないので続けられる要因となった。夜だとその日の疲労度などでスキップしてしまう可能性があるからだ。

サポート内容

基本的にはトレーニングを行なった後の記録「何日に何のトレーニングを何回してどうだったか」を書き出し、それをyaottiさんに送信してコメントを返してくれる。実際に送っているコメントは以下

2020/5/2 レッグレイズ:フラット・ニー・レイズ 20*2呼吸を意識、後半がキツかったのでスピードが早くなってフォームが崩れてしまった体☁️気分🌤

他には定期的にZoomでのミーティングで状況の確認をしてもらった。

他に実現したい目標もあったので基本的にトレーニングについては受け身で居るつもりだった。付かず離れずというサポートだったので心地よかった。

トレーニング中の心構え

受け身で始めていたが、やっているうちに情熱が沸いてしまうもので以下の項目を意識して行なっていた

  • 成長する
  • 納得を重視
  • 思い通りに出来る場所にする

プリズナートレーニングの中で書かれていた「トレーニングだけが岩のように安定している場所になった」が気に入っていて、この項目(P322~323)を何度も読んでいた。

トレーニングだけが確かなものであり、楽しみだった。一日のうちのそれ以外の時間がどれほど狂気に満ちていようと、その狂った世界で、トレーニングだけが岩のように安定している場所になった。

確かに、監獄に入った事で失ったものは多い。しかし、体を鍛える時間が、健康と体力、そして、自尊心を取り戻してくれた。

ここで1レップ追加し、そこで技術が進歩する。よりハードなエクササイズにステップアップする。倫理的であり、意味があった。筋が通っていた。常に前進し、常にコントロールしていた。

わたしにとって、これほど特別で魅力的な時間はなかった。

プリズナー・トレーニング 圧倒的な強さを手に入れる究極の自重筋トレ

ある程度の年齢になると、自分自身の思い通りになることは少なく、コントロールできない物事や無駄になった時間が数多くあると思う。

だけどトレーニングは自分自身がコントロールできる場所で、トレーニングをした回数1つ1つ全てに意味があり次につながっている。無心で取り組める心の拠り所になる場所になっていた。

1ヶ月トレーニングを継続した結果

  • トレーニング進捗
    • プッシュアップSTEP2 中級者クリア
    • スクワットSTEP2 中級者クリア
    • レッグレイズSTEP2 中級者クリア
  • トレーニングが心の拠り所になった
  • トレーニング後に気分が落ち込む事が減った
  • 1回も休むことなく続けられた
  • 今後も続けられる確信が得られた

1ヶ月継続できた理由

刹那的な達成感ではなく、自分自身の納得感を常に意識して成長を実感するのを心がけた結果だと思っている。

運動 = 身体を動かしてリフレッシュ
トレーニング = 身体を鍛えて精神を安定させる

という認識が自分の中で変わっていった事も関係しているかもしれない。身体を動かす事が目的ではなく、自分自身の精神向上 = QOLの向上を重視したのが良かったかもしれない。

あとはyaottiさんに日々の記録を送信して「見られている」感覚を意識して行なっていたのも大きな要因だと思っている。そのため1ヶ月足らずでは習慣化に成功したとはまだ言えないため、今後もサポートしてもらうために継続をお願いした。

最後に

平凡な自分が出来る武器としての「継続」を意識する事が増えてきました。今風に言えばサステナビリティ(持続可能性)でしょうか。

刹那的な達成感や一時的な感情の高まりはモチベーションとなり大きな力になると思います。ですがモチベーションだけに頼っていると精神的な疲弊には対処できないと考えています。

モチベーションに頼らずに達成するための武器として「継続」を利用したいと考えているのですが、継続には終わりがなく挫折してしまう事が多々あります。

継続の助けとなる理性を高める、あるいは意思の力を高めるためにもトレーニングを継続する。一見矛盾しているかもしれませんがトレーニングを継続すればあらゆる物事が好転していくんじゃないかと考えるようになってきました。

今回の記事でトレーニングのサポートに興味を持った方はこちらからyaottiさんにサポートの依頼をしてみるといいと思います

オンラインで個人の習慣づくりを支援する会社Coachatを創業しました|やおっち@Coachat🐢|note

継続に関して、今はトレーニングの回数を常に上げられるので達成感につながっていますが、将来的には回数が上がらず挫折してしまいそうになるかもしれません。その時にはこの言葉を思い出して実践していきたいと思います。

優れた人になる唯一の方法は、同じことの繰りかえしに、いつまでも魅了されることだ。退屈に恋をしなければならない。

ジェームズ・クリアー式 複利で伸びる1つの習慣

📹YouTube動画を無料でバックグラウンド/オフライン再生させるために宅内ポッドキャスト配信する方法

YouTubeは好きなバンドのPVを見る事が多いんですが、YouTubeでラジオ動画を公開している人もいるようですね。たまに聞くのですがiPhone版のYouTubeアプリではバックグラウンド再生が出来ないので再生するタイミングを逃して聞かなくなってしまいます。無念。

YouTube Premiumに入会すれば出来るみたいですが毎月1000円と考えると渋ってしまいます。

そこで今回は無料でYouTube Premiumの特典である

  • バックグラウンド
  • オフライン

での再生をiPhoneで実現するために、宅内ポッドキャスト配信を行うためのツール「yotaka」をお勧めします。

GitHub – soramugi/yotaka: 宅内ポッドキャスト配信のためのPCクライアント

私が作りました。ぜひ使ってみてください。

yotakaを使う目的としては宅内ポッドキャストとして音声や動画ファイルを手軽に配信する事ができる点です。

「宅内ポッドキャスト 」とは全世界の人がアクセス出来るインターネットにアップロードする事とは違い、ローカルインターネット、つまり限られたインターネット環境(例えば家の中限定)のみで公開して共有する事を指します。

なぜ宅内ポッドキャスト配信をするのか?

ポッドキャストアプリの標準機能として

  • バックグラウンド
  • オフライン

での再生機能があるため、ポッドキャストとして配信してしまえば特別な処理をする事なく目的が達成できるためです。

通常のポッドキャストの公開だとパブリックなインターネット環境にしか対応していないため、アップロード出来ない音声/動画ファイルが出てきてしまいます。宅内ポッドキャスト、つまりローカルインターネット上 (同じゲートウェイ内、同じWiFiに繋げている環境) での共有を行う事で個人的に楽しむ目的しか出来ないため「宅内ポッドキャスト」という方法を選択しました。

ちなみに、YouTubeの動画は予めPCにダウンロードしておく必要があります。 youtube-dl なんかがあるので各自調べてみてください。https://github.com/ytdl-org/youtube-dl

youtube-dl -f mp4 <YouTubeのURL,YouTubeのプレイリストURL>

yotakaの使い方

  • こちらから最新版をインストールhttps://github.com/soramugi/yotaka/releases
  • 起動したらメニューバーに常駐しているのでアイコンをクリック
  • 「閲覧ディレクトリ」を動画を格納するディレクトリに設定
  • 「Podcast Feedをコピー」や「QRコードで表示」の実行
  • iPhoneにURLをコピー
  • iPhoneの「Podcast」アプリを起動
    • undefined
  • ライブラリ内の「編集」->「番組をURLで追加…」にコピーしたURLを貼り付け
    • undefined
  • ライブラリに「yotaka」が追加されていればOKです
    • undefined

あとはライブラリに動画一覧が表示されるのでダウンロードして再生が出来ます。

以上、お疲れ様でした。

最後に

ポッドキャストとして取得してしまえばラジオ的な音声や動画ファイルを管理しやすく、バックグラウンド再生が可能です。Apple公式のアプリなので質が悪いアプリにありがちな再生停止したら最初からになってしまうような事もありません、ダウンロードも行われるのでオフラインでの再生もできます。

(ただ、yotakaを起動しているPCと同じネットワーク内に無いとダウンロードが出来ません。これは仕様となっています)

ポッドキャストの設定で未再生をダウンロード、再生済みのダウンロードは削除、等々の設定もライブラリに追加した番組毎に切り替えられるので、使用用途によって変更してみてください。使い方によっては既読管理がしやすくなると思います。