そのほか

Microsoft?からブルートフォースアタックを受けた話

4連休の前半が間もなく終わろうとした22:30、晩ご飯を食べまったりと本を読んでくつろいでいたらスマホがブルブル震えるんですね。ソシャゲの体力でも回復したのかと思いしばらく放置していたのですが、そろそろ横になろうかと23:00ごろ手に取ると……Mackerel先生からCPU負荷94%突破のお知らせが(^q^)

連休中に君の名前は見たくなかったw

とはいえ見てしまったからにはしょうがないと諦め内容を確認すると、どうやら個人で利用しているWordpress用サーバが炎上なうの模様。何らかの記事がバズった?と思いダッシュボードにログインするけどアクセス数はいつもと変わらず。特定のプロセスが激重の可能性も考えたけど、突然そんなことになるとも思えず、何となしにApacheのアクセスログをtail -fで確認すると…。

xmlrpc.php」への大量のアクセスΣ(゚Д゚)

$ tail -f /var/log/httpd/access_log
70.132.61.91 - - [20/Sep/2020:22:41:09 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.143 - - [20/Sep/2020:22:41:09 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.95 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.147 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.143 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.81 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.144 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.91 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.97 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
70.132.61.95 - - [20/Sep/2020:22:41:10 +0900] "POST //xmlrpc.php HTTP/1.1" 200 497 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"

(後述しますが上記のIPアドレスはCDNの物です)

これ以外のリクエストがほぼ見えない状態でログがガンガン流れてくのを呆然と眺めること数分。明らかにアタックを受けている。それも目の前で、リアルタイムに。はっと我に返りすぐさま対応せねばと思い至りTerminalに意識を戻します。……正直寝たいw
続きを読む

Docusaurusでドキュメントを作成しGitHub Pagesへ公開する

facebookが開発しているDocusaurusドキュサウルスを利用すると、Markdownを書いてちょちょいと設定すればナウい感じのドキュメントを作成することができるという噂を聞きつけ、今回はインストールから簡単な設定を行い、GitHub Pagesへ公開するところまでを駆け足でたどります。

具体的な事例は公式サイトに一覧が掲載されていますが、facebook製だけあってReact関連のプロジェクトはほとんどがDocusaurusみたいですね。

なおDocusaurusには現行バージョンの1.x系と、開発中の2.x系がありますが、今回は1.x系を利用します。2系はコマンドや設定が異なりますのでご注意ください。
続きを読む

「バロン」の肘パッドがラピュタのように崩壊したので交換した話

自宅では10年ほど前に購入したオカムラのオフィスチェア「バロン」を愛用しています。腰痛持ちなので椅子は良いものを使いたいと思い清水の舞台から飛び降りる覚悟で購入を決意し、メジャーどころのオフィスチェアを試座しまくったら最終的にバロンにたどり着きました。やはり日本人には日本メーカーのイスが相性良いのでしょうか?

※画像はメーカーサイトより

ここ10年はほぼノーメンテ、たまに掃除をするくらいでなんの故障や不具合の一つも無かったのですが、つい2ヶ月前ほど前から何の前触れもなく肘パッドに亀裂が入ってきました。最初はひとまずビニールテープで補修してごまかしたのですが、時間が立つほどに崩壊が進んでいくわけです。

最終的に下の素材が見えるレベルになりました。ラピュタのラストシーンを彷彿とさせる崩壊っぷりにさすがにまずいと思い一念発起。交換を決意したというわけです。

誰ですか、滅びの呪文を唱えたのは。先生怒らないから手をあげなさいヽ(`Д´)ノプンプン
続きを読む

AdBlockを有効にしているブラウザへの対策あれこれ

白状すると私も日常的に広告ブロックツールを使ってますw
PC版のChromeではAdBlockPlusの機能拡張を入れ、iOSのSafariでは最近AdGuardを利用しています。正直快適でもう手放せませんw

ただこれがサイト運営者の収益を削っているのも事実。せめてサーバ代くらいは捻出したいという方も多いと思いますので今回は広告ブロックの簡易的な検出方法と、その対応策についてまとめたいと思います。
続きを読む

恐怖のメール「Google AdSense: お支払いが正常に処理されませんでした」

このブログは主にAdSenseの収益で運営してまして、サーバ代や専門書代などに充てさせもらってます。まぁそれで消える程度の売上なんですが年間で見るとバカにできないわけです。そんなところに届いたのがGoogleからのこんなメール。

お支払いが正常に処理されませんでした

2020年3月23日に、お客様の Google AdSense アカウントにお送りした金額が正常に処理されませんでした。理由について銀行からの説明はありませんでした。お取引先の銀行に詳細をお問い合わせください。お取引先の銀行か金融機関にお問い合わせのうえ、この問題を解決してください。

( ゚д゚)ファッ!?

一瞬何が起こったのか様々なことが脳裏をよぎりましたw これまで何度も振り込みがあった銀行口座なので入力間違いという可能性はない。もしや銀行口座を悪い人にどうかされちゃったのだろうか…とか銀行から違法な取引だと思われてる!?とか朝っぱらから脳みそフル回転でした。
続きを読む

台風19号関連のツイート〜武蔵小杉のすみっこから

武蔵小杉の端っこの方、多摩川まで徒歩数分のところに住んでいます。ええ、そうなんです。川崎市から配布されたハザードマップで真っ赤になってるところですねw

テレビなどで報道のあった通りこのエリアは2019年の台風19号により街中が浸水することになりました。私自身は幸いなことに被害はほとんどなかったのですが、生まれて始めて避難所に向かい夜を明かす体験をし、自宅の周囲がドロや水で覆われまともに生活することが困難な状態に見舞われました。

その際の状況をTwitterへ事ある毎にポストしていたため、ひとまず関連するツイートをここにまとめておきます。

続きを読む

deploygateが入らない – macOSにdgコマンドをインストールする

CLIからDeplyGateを利用できるdgコマンドですが、macOSでは通常コマンド一発で入ります。

$ curl -sSL https://deploygate.com/cli/install | bash

$ dg --version
dg 0.7.0

ところが環境によってはエラーとの戦いに突入しすんなり入ってくれません。というかなりました。Ruby製のソフトウェアはこの手の問題が発生しやすいイメージが強いのですが何とかならんもんですかね…(´・ω・`) Rubyと聞くと反射的に「ウッ」と変な声が出るようになりましたよw 自分でゼロから書く分には良いのでしょうが。

閑話休題。というわけで今回はmacOS Mojava(10.14.6)にdgコマンドを入れます。

なお、XCodeのコマンドラインツールは事前にインストールしておいてください。2行目はライセンスに同意するコマンドです。普通にXCodeを起動してボタンをクリックしても大丈夫です。

$ xcode-select --install
$ sudo xcodebuild -license accept

続きを読む

カナヘイ展に行ってきた (大満足)

8月5日の昼下がり、カナヘイ展に行ってきました。

カナヘイ先生が昨年プロデビュー15周年を迎えたのを記念し、7月25日から8月6日まで松屋銀座で開催された展覧会。春ごろに発表されて以来ずっと気になっていたのですが、女子だらけの空間におっさんが行って空気を乱すのもなぁ…と迷っていたのですよ。ところがTwitterを眺めていると思ったよりも男性がいる(゚д゚)! これは行っても大丈夫なヤツか!?とドキドキしながら現地に向かいました。

いやね、うさぎとピスケが大好きなんですよw 自分とチャットしたことある人なら望むと望まないとに関わらず一度はスタンプくらってるハズw
続きを読む

Web版「Sign In with Apple」を実装する

今年のWWDCで発表された「Sign In with Apple」のWeb版(JavaScript版)を実装してみたいと思います。

今回、裏側はFirebaseを利用していますが、Authenticationは使っていませんので、一般的な環境でも参考になると思います。(執筆時点でまだFirebaseが未対応なので使いたくても使えないわけですがw)

※2019-09-23 「1.5 ユーザーを一意に特定するID」追記

続きを読む

JavaScript/CSSをコマンドラインでminifyする

JavaScriptやCSSには人間が読みやすいよう、改行やスペースを設けたり、パット見て何に利用するかわかりやすい変数名をつけるわけですが、これは対人間用であってそれを実行する機械にとっては邪魔でしかありません。変数は1文字あれば十分ですし、改行やスペースなどのいわゆる「ホワイトキャラクター」はそもそも不要です。

そんなときに利用するのがminify。
webpackなどを利用していれば、最終的な出力時に自動的にやってくれますが、手元で個別のファイルに対して実行したいときがありますよね。今回はwebpackも内部で採用しているUglifyJSと、CleanCSSのCLIツールを利用して、JavaScript/CSSのminifyを行ってみます。

続きを読む

[GitHub] Markdownの「シンタックスハイライト」に対応している言語一覧

Markdownでプログラムのソースコードを記述する場合に使うバッククォート3つで囲う「コードブロック」ですが、気の利いた環境だと自動的にシンタックスハイライトによって予約語やコメント分などを色分けして見やすく表示してくれます。

GitHubも例外ではなく、各リポジトリに常設されているWikiやREADMEなどをMarkdownで記述した場合は自動的にシンタックスハイライトされます。

メジャーな言語であればそのまま記述すればよいのですが、例えばYAMLやJSONなどのデータ形式や、Apacheの設定ファイルなどそもそもカラーシンタックスに対応しているのか、対応している場合キーワードはなんだろうと迷いますよね。

今回はGitHubが対応しているカラーシンタックスの設定一覧をまとめておきます。
続きを読む

コストから考えるGoogleのクラウドゲーミング「Stadia」

GDC2019でGoogleから新たなクラウドゲーミングサービス「Stadia」が発表されました。概要についてはGIZMODEの記事がわかりやすいので詳しくはこちらをどーぞ。

Stadiaを耳にした際にに真っ先に頭に浮かんだのはスクエニが子会社を設立してまで立ち向かった「シンラテクノロジー」でした。

シンラテクノロジーは2014年に設立され、思わずニヤリとしてしまうネーミングからも話題になりましたが、残念ながら実際にサービスインすることなく2016年には20億円の特損を出し会社ごと清算する運命をたどりました。また同じく2016年にはG-clusterを当初提供していた「Gクラスタ・グローバル」社も債務超過に陥り倒産しています。現在はブロードメディアの子会社が事業を引き継いでいます。具体的に何にどれくらい資金を注ぎ込んだのかは公表されていませんが、クラウドゲーミングはとにかくお金がかかると認識させられたのをよく覚えています。

Google先生の膨大な資金力があれば会社毎逝くことはないでしょうが、事業単体では巨額の赤字を抱えて死ぬのではという未来が頭をよぎって仕方ありません。
続きを読む

Twitterアプリを新規に作成する

Twitterのログイン機能を自分のサイトに設置したり、APIを利用するためにはTwitterへ開発者登録後にアプリの作成を行う必要があります。

デベロッパー登録

開発者登録を行っていない場合はこちらをまずは行います。詳細は過去の記事を参照ください。

Twitterの中の人が申請内容の確認作業を行うため、審査中はアプリの登録や利用などは行うことができません。タイミングによりますが私の場合は4時間程度でした。ネット上を見回すと10日前後かかった方もいらっしゃるようなので、早めにやっておいたほうが良いでしょう。

この作業は最初の1度だけです。

アプリを作成する

新規登録

Twitterのデベロッパーサイトへアクセスします。


続きを読む

TwitterのDeveloper登録をする – 2019年2月版

以前はTwitterのAPIを利用するためには所定の項目に入力すればそれで終わっていたのですが、最近は入力した項目をTwitter社の方が問題ないかチェックをしているようです。世知辛い世の中になったもんです(´・ω・`)

今回はTwitterへデベロッパーアカウントとしての申請を行ってみます。

申請する

ログイン

Twitterにログインした状態、または以下のページにアクセスし申請を行うアカウントでログインを行います。

続きを読む

はじめての Font Awesome

いつも使い方を忘れるのでメモ。

公式ドキュメント

Start」と「Basic Use」あたりに一通り書いてありますので、基本的にはこちらを参照するのが最も正確です。

ライセンス

無料版ではアイコン、フォント、コードによってそれぞれ別れています。いずれも一般的なWebサイトなどで利用する分には個人、商用問わず利用できます。GPLのようにコードの公開やコピーレフトもありません。

Icons
CC BY 4.0 License
Fonts
SIL OFL 1.1 License
Code
MIT License

使い方

ライブラリ

Startページでlinkタグを生成し、利用したいページのheadタグ内などに貼り付けます。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Hello FontAwesome</title>
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
</head>
<body>

</body>
</html>

続きを読む