awsのec2インスタンス上のmysqlが乗っ取られる…ビットコインを払えだと…?!
To recover your lost Database send 0.03 Bitcoin (BTC) to our Bitcoin address xxxxxx and contact us by Email with your Server IP or Domain name and a Proof of Payment. Your Database is downloaded and backed up on our servers. Backups that we have right now: xxxxxx, main. Any email without your server IP Address or Domain Name and a Proof of Payment together will be ignored. If we dont receive your payment in the next 10 Days, we will delete your backup.
という文章が、PLEASE_READ_ME_VVV というテーブルが勝手に作られたようでその中に書かれていた…。幸い、別にたいしたデータは入っていなかったので大きな問題は無かったが、まさかクラックされることがあるとは…。
通常、mysqlはlocalhostからしかアクセスできないようになっているかと思いきや、mysql > SELECT Host, User, Password FROM mysql.user; で見てみると、なぜかこのサーバはアプリサーバとか別の場所から接続させたいのか、ワイルドカード設定(%)が入っていてそれで外部のどこからもアクセスできてしまっていて、パスワードを解析されて入られてしまった模様…。
その仕様は自分ではわからず変えられないと思われるので(もしくはvpcで外側から防げば良いと思うが…)一応、ユーザーを新規に作りパスワードをmaxの64文字に設定し直した。それでもクラックされてしまうのだろうか…様子を見たいと思う。
Androidにsvgを持っていく際のエラー
resフォルダの上で右クリック→new→Vector Assetsでsvgファイルを取り込めるが、この際にいくつかエラーが起こっていて解消したのでメモを…。
1
取り込みの際に、textタグをサポートしていない、という警告が出ていた。これは、いわゆるフォントをラスタライズをする必要がある。フリーのソフトだと、Inkscopeで開き、オブジェクトをパスに変換すればok。もしくはそもそも素材提供元に、ラスタライズしてくださいって言ってもいいと思う。(フォント持ってなかったら面倒ですしね…)
2
上記を修正し、問題なく読み込めると思いきや、今度はビルドの際に、
AAPT: error: 'square' is incompatible with attribute strokeLineJoin (attr) enum [bevel=2, miter=0, round=1].
というエラーが…。
これは、svgのstroke-linejoin="square" という部分を削除したら大丈夫だった。削除しても見た目は変わらなかったのでokとした。
electronでwindows向けアプリを作ってみた時の注意点
・当たり前といえば当たり前だが、ウインドウサイズ変更時に画面を引き伸ばしたりなどはしてくれない。このようなjsを読み込ませるようにして対応。
https://gist.github.com/kuniakisuzuki/772e8538a79246d1977c1887a25d035c
・jquery動かない問題
<script type="text/javascript" src="./js/jquery-3.4.1.min.js"></script>
↓
window.jQuery = window.$ = require('./js/jquery-3.4.1.min.js');
みたいに書き換え。
・packagerでパッケージングして、そのexeから動かした時のみの挙動だが、
例えばある階層の画像ファイルを全てリスト化したい、といった場合、
var path = require('path');
var pathFile = path.join(__dirname, "image/");
var fs = require('fs');
if (!fs.existsSync(pathFile)) {
alert("画像データフォルダが見つかりません。「" + pathFile + "」に存在しているか、確認してください");
return;
}else{
var files = fs.readdirSync(pathFile);
}
みたいな感じで、pathを、require('path')を使ってフルパスで作成しないと、fs関数に渡した時に、常にファイルが無いと言われてしまった。(html的な相対パスではだめで、pcから見た場合の絶対パスを渡さないとだめなのかもしれない)
・electronをパッケージングする設定を書くmain.jsの、
new BrowserWindowmへ渡すwebPreferencesオプションで、
webPreferences: {
..
nodeIntegration: true
}
みたいに、nodeIntegration: trueを入れないと、require('fs')がなどのrequire関数が使えなかった。
ファミレスのcoco's(ココス)でwi-fi使えるようになってる
amazon pay月額課金の注意点
https://m.media-amazon.com/images/G/09/AmazonPayments/QuickStartGuide.pdf?ld=APUSLPADirect
あまり大きくは書かれていないが、月額課金を自動的に実行してくれるわけではない点に注意。
ざっくりと書くと、
AmazonBillingAgreementIdを使って、GetBillingAgreementDetailsでその人の、名前、課金していいかなどの情報が取れる
↓
課金してokであれば、AuthorizeOnBillingAgreementで課金
という流れを、自分たちで実行しないといけない。
AmazonBillingAgreementIdは、課金するときに取れるので、取っておく必要があるが、最悪、ユーザーとの紐付けが面倒ではあるが、管理画面上の【レポート】→【トランザクションレポート】→【AmazonリファレンスID】で日付を指定して検索し、日ごとのレポートがダウンロードでき、その中に記載はされている。
また、件数が少なければ、
https://pwa.geekylab.net/index.html?ld=APUSLPADirect#/
から、手動で実行してもいいかもしれない。
xcode10 & ios12で、layoutSubviews内での[self subviews]が取れなくなった
xcode9 & ios12では問題なく、xcode10 & ios11でも問題なかった。
ただ、xcode10 & ios12の場合、layoutSubviewsで、[self subviews]で何も取れなくなってしまっている。
自分の作っていたアプリでは、layoutSubviewsで色々viewをいじっていて、ios12環境だけ何故かそれらが適用されず、色々と調査をした結果、この問題に気づいた。
タイミングを1つ遅らせれば良いのではと思い、layoutSubviewsで行うようにした所、問題なく[self subviews]でviewが返ってきた。
わかってしまえば非常に単純だが、この問題の調査に数日かけてしまった…。
さくらインターネットの.htaccessでのフォルダ転送、動作しない…
.htaccessによるアクセス制御 – さくらのサポート情報
のURL書き換えリダイレクトを行いたい を見てやったのだが、どうも自分のさくらサーバでは効かず…。
今回、自分がやろうとしたのは…
http://xxxx.sakura.ne.jp/image1/xxx.jpg
みたいな感じで来たアクセスを、
http://xxxx.sakura.ne.jp/image2/xxx.jpg
にそのまま飛ばしたい。
色々試した結果、なんだか腑に落ちない部分もかなりあるが、
RewriteEngine on
RewriteBase /
RewriteRule (.*) "http://xxxx.sakura.ne.jp/images2/$1" [R=301,L]
という内容で.htaccessファイルをimage1フォルダに置いた所、動作した。