[実験的] ブログに暗号通貨の寄付ボタンを設置しました

  • POSTS
⚠この記事はブログ移転前のアーカイブです 以前こんな記事書きました 絵師に投げ銭する方法:https://wp.bmemo.pw/1060 上記の記事でネット上の人物を支援する方法を紹介しました.これらはリアルマネーで取引したものを支援金(物資)として提供するものでした. そして大事なことを忘れていました.暗号通貨を使えば匿名で低コストで迅速な支援ができるじゃないかと. 暗号通貨とは ここで書かなくても優れた解説サイトがあります ビットコイン(Bitcoin)とは?:https://bitflyer.jp/bitcoindigitalcurrency この暗号通貨を使ってやり取りをするわけです. 暗号通貨用の財布(ウォレットの作り方) 暗号通貨を保存しておく用の財布(ウォレット)を作ります. ブロックチェーンをダウンロード ややこしいことはしません.アプリを導入することで3分でウォレット作成します. Jaxx:https://jaxx.io Chrome拡張版 Androidのほか,iOS,Mac Windows,Firefox拡張などにも対応しています. 当ブログのウォレット ボタンを置いてみました.クリックするとQRコードとアドレスが出てきます. もっともらしい文章が書いてありますが気にしなくていいです.気が向いたらコーヒー1杯分しないくらいでいいので投げてみてください.

絵師に投げ銭する方法

  • POSTS
⚠この記事はブログ移転前のアーカイブです Twitter等で神絵師に投げ銭できない!投げ銭させろという声をよく目にするようになりました.そういえばクリエイターの創作活動をファンが金銭的に支援するEnty.jpの登場などクリエイターを取り巻く環境が変わってきてるなと感じています. ぼく「この絵師さん遥かに良い! 画集・同人誌注文重点!」 Googleセンセ「残念やけどネット専業みたいやで 投げ銭フォームもない」 ぼく「あ゛あ゛あ゛あ゛あ゛(喉をかきむしって死ぬ」 — 木野修造 (@shuzo_kino) 2016年7月24日 本題で神絵師/クリエイターに投げ銭する方法はどんなものがあるのかを考えてみました. ※投げ銭行為はクリエイターが募集している場合にのみ行ってください.受取を拒否されてもしつこく追求してはいけません.お互いにとって気分の良い支援をしましょう もくじ 1. Enty.jp 2. Amazonほしい物リスト 3. Amazonギフト券(メール送信) 4. ユグドア まとめ 1. Enty.jp 特徴 ファンは金額に応じてクリエイターから見返り,限定作品の公開・早期公開などが受取れる(場合がある) 少額支援が可能(な場合がある) 支援は月額制のみ クリエイター側のEnty開設のアクションが必要 クリエイター側は見返りを用意しなければいけない場合が多い 手数料あり クリエイター側に5%~10% ファン側の支払い方法(paypal,クレカ等)に応じて3%~5% クリエイターとファンのつながりを重視したサービスです.クリエイターは自己紹介と支援の金額に応じた見返りや,目標金額の設定などを行ってファンを募集します.応援メッセージなど送ることができます.まるでクラウドファンディングのようなサービスです. ただし支援が月額制となっており,継続的な支払いが必要となります.Enty運営としては,「1度きりの支援なら1ヶ月分だけ払って後は支援解除すればいい」とFAQで述べています 支援したいクリエイターがいてもEntyを開設していなければ支援することはできません.Entyを通じて支援するにはクリエイター自らEntyページを開設する必要があります. Enty 2. Amazonほしい物リスト 特徴 クリエイターが欲しがっているものを直接支援できる ファン側に住所氏名を知られる可能性がある 支援金額=商品の金額なので,支援金額が定まらない 少額支援が難しい 誕生日とかに公開する人が多いです.ただし発送を伴う商品の場合,発送先の住所氏名の設定に気をつけないと送り手に住所氏名がバレてしまう可能性があります.欲しいものは人それぞれで金額もそれぞれです.少額支援したいのに高額な商品しかない場合などは,支援の障壁となってしまいます.普段公開するものよりも誕生日などに公開すると良いものだと思います.

[HTTPS対応]Twitterアイコンを自動取得するAPIを公開しました

  • POSTS
⚠この記事はブログ移転前のアーカイブです ユーザー名を指定するだけでTwitterアカウントに設定されているアイコンを取得できる無料APIを公開しました. ソースコードも公開しますのでいじって使ってもOKです. 【追記】2017/04/10現在:サーバー移行期のためhttps://icong.bmemo.pwは停止しています。ソースコードをご利用ください。 もくじ APIエンドポイント 使用例 仕様 ソースコード core.py APIエンドポイント https://icong.bmemo.pw/tw/ 使用例 https://icong.bmemo.pw/tw/Quent_FL <img src="https://icong.bmemo.pw/tw/Quent_FL" >  取得できるアイコンは1サイズのみとなっています.高画質版(生の画像)などが取得したい場合はソースコードを弄ってください 仕様 APIエンドポイント https://icong.bmemo.pw/tw/<screen_name or ID> screen_name または IDが使用できます HTTPS対応 キャッシュ 既に取得済みのアイコンはキャッシュから配信されます キャッシュ期限は10日で,10日を超えた場合は新しくアイコンを取得してキャッシュし直します 制限 新しくアイコンを取得する場合はTwitter API を使用します.Twitter API 1.1の制限を超えて配信することは出来ません. API制限に引っかかった場合は404エラーが返ります キャッシュした画像であれば制限はありません 一度に大量のリクエストを発行する場合は,ソースコードから自前のサーバーにデプロイしてください その他 予告なくサービスが停止することがあります 本サービス及びソースコードの利用は自己責任でお願いします

「ゴルスタ」は個人情報収集アプリなのか?アプリ権限を確認してみる

  • POSTS
⚠この記事はブログ移転前のアーカイブです 「ゴルスタ」アプリは中高生限定のアプリで同年代同士匿名でコミュニケーションを撮ったり出来るアプリなのですが,その運営体制にちょっと火がつきました この件に関してはあまり興味が無いので,この炎上案件のついでに引っ張りだされてきた「ゴルスタアプリの権限」について書きたいと思います. 追記:2016/9/5 スプリックスによる「ゴルスタ」はサービスを終了しました。 もくじ 個人情報収集アプリの疑惑 権限を確認するには? ゴルスタアプリ権限一覧 ゴルスタアプリで怪しい権限は? 少し多いかもしれないけどSNSなら当然持っている権限 問題はその情報をどう使うか 個人情報収集アプリの疑惑 スマートフォンアプリ(Android,iOS等)はそのアプリが実行できる権限が非常に限られています.連絡帳やGPSを使用する場合は権限を与えなくてはいけません. 逆にそのアプリに対して明らかに不要な権限がくっついている場合,個人情報収集目的などの疑いがかかってしまいます.健全なアプリ開発者は必要な権限だけを追加して利用者に配信するわけです. 「ゴルスタ」ではこの権限設定がちょっと過剰だと言われています.さて本当なのでしょうか.Android版ゴルスタの権限を見てみることにします. 権限を確認するには? アプリインストール時に表示されています.また,アプリ詳細画面の最下部にも権限の詳細が表示できます ゴルスタアプリ権限一覧 本記事執筆時(バージョン3.31)の権限一覧です アプリ内購入 端末とアプリの履歴 実行中のアプリの取得 ID この端末上のアカウントの検索 連絡先 この端末上のアカウントの検索 連絡先の読み取り 連絡先の変更 位置情報 正確な位置情報(GPS とネットワーク基地局) SMS テキスト メッセージ(SMS)の受信 電話 端末のステータスと ID の読み取り 画像/メディア/ファイル USB ストレージのコンテンツの読み取り USB ストレージのコンテンツの変更または削除 ストレージ USB ストレージのコンテンツの読み取り USB ストレージのコンテンツの変更または削除 カメラ 画像と動画の撮影 マイク 録音 Wi-Fi 接続情報 Wi-Fi 接続の表示 端末 ID と通話情報 端末のステータスと ID の読み取り その他 インターネットからデータを受信する ネットワークへのフルアクセス この端末上のアカウントの使用 ネットワーク接続の表示 端末のスリープの無効化 他のアプリの上に重ねて表示 バイブレーションの制御 音声設定の変更 ネットワーク接続の変更 システム設定の変更 Bluetooth デバイスのペアの設定 ゴルスタアプリで怪しい権限は? ゴルスタで設定されている権限で個人特定可能,または怪しい権限をピックアップしました.

OnePlus 3 を1shopmobileで購入する

  • POSTS
⚠この記事はブログ移転前のアーカイブです 買いました.いつものごとく1shopmobileを利用しましたので購入レポです. もくじ 注文 住所の書き方 注文時間によっては50時間で届く 1shopmobileは消費税を多くとられる? 注文 1shopmobileにてOnePlus 3 ゴールドが429ドルで販売されていたので買いました.1shopmobileは米Amazon Paymentsシステムを利用しているので,Amazon.com経由で支払います.(Amazon.co.jpじゃないよ) 注文が完了するとAmazon Paymentsからオーダー内容の確認メールが来ます.住所も表示されてるので再度確認しましょう. 459ドルで,日本円での請求は47,255円でした.購入当時のレートが101円だったのでカード会社の手数料上乗せしてだいたい102円ほどで計算されたようです.(購入直後に99円台にまで急騰したので少し期待していたけどダメでした) 住所の書き方 ちなみに海外ショピングで,日本の住所を書くときはこう書きます. 例:千葉大学 西千葉キャンパス:〒263-8522 千葉県 千葉市 稲毛区 弥生町 1-33 電話番号は実際には使用できないダミーナンバーです. Address 1 Yayoi-cho, 1-33 Address 2 Inage-ku City Chiba-shi State Chiba ZipCode 263-8522 Country Japan Phone +816-6012-3456 「Address」は「Street Address」とも表記されますが意味は同じ.電話番号は頭の0を消して「+81」をつける.

WordPressとMarkdownを使ったXSS

  • POSTS
⚠この記事はブログ移転前のアーカイブです 去年見つけたXSS紹介します. WordPress上でとあるMarkdownプラグインを使用すると,JavaScriptの投稿を禁じられたユーザーでもJavaScriptを投稿できるようになります.複数人でブログ運営していて権限の低いブログライターがブログ所有者のセッションを乗っ取ることも可能です. もくじ WordPressのXSS対策機能 unfiltered_html Markdownプラグインを使ったwp_kses突破 原因にWordPress公式のAPIが絡んでた wp_insert_post_data その後 WordPressのXSS対策機能 unfiltered_html WordPressには複数人でブログを運営するためにユーザーレベルが設けられています.デフォルトでは,特権管理者・編集者・投稿者・寄稿者・購読者が設定されています. このうち投稿者以下のユーザーはJavaScriptを含んだ投稿ができません.これらのユーザーレベルがJavaScriptを含んだ投稿をするとその部分をwp_ksesが無害化します. <script>alert(1);//</script> → 削除 <a href="javascript:alert(1)">リンク</a> → <a href="alert(1)">リンク</a> 上記のようにjavascriptが動作しないように変換してくれていることが分かります.XSSしまくってる人たちは上記以外でもjavascriptを実行する方法を御存知でしょうが,その多くの手法がwp_ksesによって塞がれています.そしてこの**wp_ksesはHTMLに対して動作**します. Markdownプラグインを使ったwp_kses突破 Markdown on Save Improved (MoSI)を使うとJavaScript投稿を禁じられているユーザーでもJavaScriptを埋め込むことが可能になります. Markdownって何?って人は→こちら Markdownで以下の記述をすると,記事投稿時にjavascriptが動作する形で出力してくれます.wp_ksesによる削除等を突破できます. ![a](http://example.co/x`"`<a href="onerror=alert(1)//">a<a>.jpg) ↓ <img src="http://example.co.jp/x<code>“</code><a href="onerror="alert(1)//"">a<a>.jpg コードはもっと短くできそうだけど試してないです. 原因にWordPress公式のAPIが絡んでた そもそもXSSができたのはMoSIプラグインの実装上の問題から来たわけですが,少し調べてみるとXSSを引き起こした原因にWordPress公式のAPIが絡んでいました wp_insert_post_data プラグイン開発者の皆さんはこのAPIを使っているのでしょうか.このAPIはwp_ksesで検査した後のテキストデータを再編集できるようになるAPIです.MoSIプラグインは,このAPIを用いてMarkdown記法からHTML記法へ変換していました. wp_ksesで検査した後にhtmlに変換するわけですから,当然Markdown記法で書いたテキストにjavascriptが含まれていてもwp_ksesはスルーしちゃうわけです. その後 すぐ修正されました.でもMarkdownを使ってブログを書くにはJetPackを使うのがメジャーだということで,開発者の方がJetPackを使うようにアナウンスを出しました.このプラグインはもう開発止まってます.使ってる人は早くJetPackに移行しようね. WordPressのAPIリファレンスにしっかりXSSのリスクを書いてて欲しい.まだ沢山こういう脆弱性持ってるプラグインありそうで怖い. 小さなお店&会社の WordPress超入門 ―初めてでも安心! 思いどおりのホームページを作ろう!

NECルーターで公開サーバーを行うときの注意点

  • POSTS
⚠この記事はブログ移転前のアーカイブです NECのルーター買ってハマったのでメモ もくじ 公開するサーバーはDHCP割当範囲外にすること NEC製ルーターは内部からグローバルIPへルーティングできない hostsを書き換える方法 よろしい。ならば 自宅内 BIND だ Docker 使おう 公開するサーバーはDHCP割当範囲外にすること ポートマッピング(俗にポート開放)するにはルーターのWEB UIから「ポートマッピングメニュー」を開いて公開したいサーバーのIPとポートを指定するだけ。ただ、設定だけはシンプルなのにこのままでは動かない可能性があります。 それは、公開するIPアドレスはDHCP割当範囲外にすることです。 マニュアルにすごく小さく書いてあったので見逃してました。 「192.168.11.50」の80番を公開するとします。公開したいIPアドレス192.168.11.50はDHCP範囲外にしなくてはなりません。 例としてはこんな感じです。DHCPで自動的にIPを割り当てる範囲が「192.168.11.100」~「192.168.11.200」の100台分を割り当てるようにしています。 ポートマッピングしたいIPが「192.168.11.150」とかだと上手くポートマッピング出来ません。 NEC製ルーターは内部からグローバルIPへルーティングできない ポートマッピングもした、DDNSでドメインも割り当てた。さあ自宅内のブラウザで繋いでみよう。 つながらない。正確には応答しない。いつまでもローディングアイコンがグルグルグルグル・・・ グローバルIP直打ちにしてアクセスしてもだめ。パケットそのものが届いてない。 これも初めて知ったのですが、「NEC製ルーターは内部からグローバルIPへルーティングできない」んですね・・・ グローバルIPが「123.45.67.89」だとして、NAT内の公開サーバー「192.168.11.50」に「192.168.11.55」から「123.45.67.89」でアクセスしてもつながらないのです。VPNで適当なネットワークからアクセスすると正常に繋がることが確認できるはずです。 自宅内だろうが外出先だろうが、ドメインを解決すると「123.45.67.89」に解決されるわけですが、自宅内だと123.45.67.89は192.168.11.50にポートマッピングせず、パケットは到達しません。 自宅内では「192.168.11.50」、それ以外のネットワークでは「123.45.67.89」に名前解決されるようなシステムを作成しなければなりません。 hostsを書き換える方法 C:¥Windows¥System32¥drivers¥etc¥hosts とか /etc/hosts に1行書加えればいいわけです 192.168.11.50 bmemo.pw hostsを書き換えて対応するのが一番手っ取り早いですね。自宅でしか使わないデスクトップパソコンなら間に合いそうですが、持ち歩きするノートパソコンや、VPNを使用する場合は不便です。 よろしい。ならば 自宅内 BIND だ 公開したいドメインだけ自宅内に設置したDNSサーバーに解決させれば、自宅内にいる時だけ「192.168.11.50」とドメインを解決出来るようになるので正常にアクセスできるようになります。 Docker 使おう Dockerイメージが配布されています。 cosmicq/docker-bind Webminつきなので、WEB UIでBINDを設定できるのが嬉しいです。 docker でコンテナを作るときは以下のオプションで起動します。公式の記述に再起動オプションをつけました。基本的に常に起動していてもらわないと困るので。 docker run -d \ -p 53:53 -p 53:53/udp \ -p 10000:10000 \ -v /srv/bind/etc:/etc/bind \ -v /srv/bind/zones:/var/lib/bind \ -v /srv/bind/webmin:/etc/webmin \ --restart=always \ -e PASS=newpass \ -e NET=172.

OpenNebula で自宅クラウドを1時間で構築する

  • POSTS
⚠この記事はブログ移転前のアーカイブです 自宅クラウドを構築するべくOpenStackに手を出し、なんとか動く状態にはしたもののクソ複雑すぎてこれ以上弄る気が失せてしまった。スケールさせるときとかもっと大変なんだろうなとか思うと鬱になりそう。 調べたらOpenStack, CloudStack の他にいくつかオープンソースのクラウドパッケージがあることを知りました。 それでいじり始めたのが「OpenNebula」VMwareで予行演習したら1時間でVM起動できるところまで出来てビックリした。 しかし日本語情報が少ない(技評)(OpenNebulaを使ってみた。)(Qiita)のが気になったので、最近の環境で動いた例を書き残しておこうかと思います。 もくじ 構成 Ubuntuインストール~初期設定 OpenNebula + WebUIインストール NFS + SSH設定 コンピュートノードインストール WEB UIログイン ネットワークの設定 連番で固定IPアドレスを割り当てたい場合 DHCP機能があるルーター(サーバ)があって、ルーターにIPアドレスの割当をやらせたい場合 VM起動 参考 構築の参考 使い方の参考 構成 構成は非常にシンプルです。普段使っているルーターのネットワークにVMを参加させて稼働します。図のラップトップやスマートフォンからVM にアクセスできますし、VMも自由にネットに出ることが出来ます。IPアドレスの管理も、OpenNebulaでは行いません。VMを立ち上げた時にOpenNebulaが作成した仮想ネットワークインターフェースに対してルーターがDHCP機能でVMにIPアドレスを割り当てます。 スムーズに出来れば1時間で構築できます 自分が構築したのはSkylake i7 + 32GB RAM のリアルマシンですが、誰でも真似できるようにVMware上 で構築します。 VMware 設定/OpenNebula バージョン CPU 4コア ☑ Intel VT-x/EPT または AMD-V/RVIを仮想化 ☑ CPU パフォーマンス カウンタを仮想化 RAM 8192 MB HDD 60GB (80GB~ あると安心かも) ネットワーク ブリッジ:物理ネットワークに直接接続 OS Ubuntu 16.