ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

みんな、はてなブログに画像を貼るときにCtrl+Vで直接アップロードできるって知ってた?

Http Headersのマルウェア疑惑を受けて、Firefoxのアドオンの自動更新を無効にしておいた - ちぎっては投げるブログの記事を書いていたときに偶然気がついたのだけど、Ctrl+Vでクリップボードからアップロードして挿入してくれる。 めっちゃ便利。

f:id:mczh:20161103225806p:plain

このブログの性質上、デスクトップキャプチャをアップロードすることが多いのだが、これまで毎回ファイルに保存していたが不要になった。 キャプチャー→貼り付けのたった2ステップ。

ちなみに、デスクトップキャプチャにはWindows標準機能のSnipingToolを使っている。PrintScreen+ペイントより楽なので、こちらも是非試してみてほしい。

Http Headersのマルウェア疑惑騒動を受けて、Firefoxのアドオンの自動更新を無効にしておいた

最近話題になっているHttp Headersの件。

blog.clock-up.jp

Chrome ExtensionのLive HTTP Headersの調査(CoolBar.Pro導入 Extensionが何を行うかの調査) · GitHub

マルウェア化はHttp Headers以外のアドオンでも起こりうる

私のふだんのメインブラウザはFirefoxで、Chromeには公式系の拡張しかいれていない。

だが、Firefoxにはいくつか個人制作らしいアドオンをインストールしている。

そして、この問題はもちろんFirefoxの拡張でも同様に起こりうる。

言い方が悪いかもしれないが、今回のことで攻撃が出来ることに気がついた他のアドオン制作者が悪意を持たないとも限らない。

もちろん、多くの善良なアドオン開発者はそんなことをしないと思うが、利用者の最低限の自衛として、現時点で問題なさそうか?の確認及びアドオンの自動更新の無効化をしておくことにした。

現状確認

現時点では、私がインストールしているアドオンについては、レビューを見て回り問題がなさそうなのを確認した。(あくまでレビューベースであり、確実ではないが……)

元記事でも言及されているように、アップデートにより突然マルウェアと化す可能性が否定しきれないので、公式系を除いて、自動アップデートを無効化しておく。

無効化方法

ツール>アドオン>任意のアドオンをダブルクリック

f:id:mczh:20161103222937p:plain

画像部分のチェックボックスで無効を選択

更新自体をしないのも、それはそれで危険

だが、更新をしないということは、アドオンにセキュリティホールがあった場合にそれを放置することにもなる。

あくまで、「自動更新」をしないだけで、定期的に手動でアップデートを確認し、アップデートされているなら、レビュー等を読み、問題がなさそうか?を確認する運用とする。

同時に、これを機に不要そうなアドオンは整理しておいた。

別ブラウザを使用する

日常的にネットショッピングやオンラインバンク、証券を使っているので、本当はお金にかかわる場合には、余計な拡張の入っていないまっさらなブラウザを利用するのが良い。 ブログやらSNSやらのパスワードが抜かれるのも非常に困るが、お金がらみに比べればまだ被害は小さい。

まったく使っていないMicrosoftのEdgeブラウザを使うときが来たのかも。

RaspberryPiにRuby on Railsをセットアップ

最近Ruby on Railsをちょっとだけ触っている。 そこで、Railsの勉強のために自宅でも何か建ててみようと思う。

せっかくなので実際に使うものが良い。

そこで、家のRaspberryPiで動かしているもろもろのプログラムをローカルLAN公開のWEBページで制御できるようにすることにした。

たとえば、家の照明制御をラズパイからできるようにしている。 これをスマホからブラウザアクセスで操作するとか、cronで動いているプログラム群の時間を制御するとか、センサーの値を確認できるようにするとか…。

まずは、RaspberryPi上にRuby on Railsの環境構築をする。 RaspberryPiはRaspberryPi2である。3も持っているが、3より2で動かしているアプリのほうが多いので2にした。

Rubyのインストール

apt-getでインストールするRubyはバージョンが古い。 rbenvでちゃんといれることにする。

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

PATHが通ったか確認する。

rbenv

動けばOK。

続けてRubyのインストール準備

git clone git://github.com/sstephenson/ruby-build.git ruby-build
sudo ruby-build/install.sh
rbenv rehash
sudo apt-get install -y libssl-dev ruby-dev libreadline-dev

現在公開されいているバージョンを確認する。 ここでは2.3.1にした。

rbenv install --list

必殺の4コア並列ビルド!

MAKE_OPTS="-j 4" rbenv install 2.3.1
[pi@ras01: ~ 21:27:47]
$ MAKE_OPTS="-j 4" rbenv install 2.3.1
Downloading ruby-2.3.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2
Installing ruby-2.3.1...
Installed ruby-2.3.1 to /home/pi/.rbenv/versions/2.3.1
[pi@ras01: ~ 22:11:29]
$

……そんなに早くはないようだ。

最後に、通常使用するRubyのバージョンを指定する。

rbenv global 2.3.1

Rubyのインストールにかかる時間は1時間ほど。

bundlerのインストール

gem install bundler
bundle config --global --jobs 4
rbenv rehash

railsのインストール

gem install rails

動作確認Railsを動かす

rails new rasp-web
An error occurred while installing sqlite3 (1.3.12), and Bundler cannot
continue.
Make sure that  succeeds before bundling.

SQLiteがないと怒られてしまった。

気を取り直して

sudo apt-get instal -y libsqlite3-dev
gem install sqlite3 -v '1.3.12'`
rails new rasp-web
rails s
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

これだとRaspberryPi自身以外から見れないことに気がついたので、IPに0.0.0.0を指定する。

rails s -b 0.0.0.0

私のRaspberryPiはras01.localで参照できるように設定しているので、 WindowsPCのブラウザからras01.local:3000にアクセスする。

f:id:mczh:20161030234010p:plain

上記の画面が出ればセットアップ完了。

今日はここまで。