Electron製のアプリは非常に簡単に内部のソースコードが閲覧出来てしまいます。これを認識していないと簡単にコピーアプリを作られたり脆弱性を調べられます。
今回はどれくらい手軽に行えるか実際にやってみます。ハリーポッターで言う「闇の魔術に対する防衛術」のコーナーですね。悪い人がどのような手段でアプリを解析するか知り、防衛方法を模索するというわけです。くれぐれも悪用しないでくださいw
知らない方にとってはちょっとした恐怖体験ですねw
続きを読む
Electron製のアプリは非常に簡単に内部のソースコードが閲覧出来てしまいます。これを認識していないと簡単にコピーアプリを作られたり脆弱性を調べられます。
今回はどれくらい手軽に行えるか実際にやってみます。ハリーポッターで言う「闇の魔術に対する防衛術」のコーナーですね。悪い人がどのような手段でアプリを解析するか知り、防衛方法を模索するというわけです。くれぐれも悪用しないでくださいw
知らない方にとってはちょっとした恐怖体験ですねw
続きを読む
Electronで作成したWindows用アプリをインターネット経由で配布した場合に、悪い人に改ざんされておらず安全であることを証明するためにコード署名を付加します。
ここではelectron-builderを使った例になります。macOS用アプリの場合と比べれば、環境変数を設定するだけで終わるので非常に楽ちんです。
続きを読む
インターネット経由で配布するWindows用アプリが改ざんされていないか検証することのできる「コード署名」を付けます。
Windows上でコード署名を行うにはいくつか方法はありますが、今回はsigntool.exeを利用した方法を試してみます。
続きを読む
Windowsでコード署名を利用したくて証明書を購入しようとしたのですが、国内の事業者はどこも個人だとためらう価格設定でげんなりしていたのですが、これが海外サイトを利用すると半額以下でゲットできてるという情報を目にしたため、恐る恐る挑戦してみました。
実際に購入したのはこちら。国内の事業者だと安くても年間2万円、高いところだと10万円近くするのが99ドルで入手可能です。
今回は個人事業主として取得しています。英語が苦手な自分でも最後までできたので、よほどのことが無ければ大丈夫ではないかと思います。
続きを読む
Windowsで証明書関係の作業をしたくなったので、PowerShellから利用できるOpenSSLをインストールします。基本的にはインストーラーの言う通りに入れて環境変数を設定するだけです。
続きを読む
SPA(Single Page Application)でWebページを開発している場合、ページの情報をJavaScriptで直接書き換えるたブラウザのアドレスバーに表示されているURLは常に同じです。これだとブラウザのバックボタン(戻るボタン)が利用できなかったり、ブックマークや外部からリンクを貼る際に非常に不便。
そこでHTML5から登場したWebブラウザの「履歴」を操作するHistoryAPIを利用することで、SPAにも関わらず情報が書き換わったタイミングでブラウザのアドレスバーに表示されているURLを書き換え、別のページに遷移したかのように見せることができます。
// example.com/foo から example.com/bar に変更
history.pushState({}, '', '/bar')
厳密にはpushState()
を実行すると履歴が新しく追加されます。現在表示されているページの情報にURLを発行(定義)するイメージですね。
続きを読む
小ネタです。
titleタグの内容を指定した文字列に変更する場合は2つの方法があります。
まずはdocument.title
プロパティに直接値を代入する方法。基本的にはこちらを利用します。
document.title = 'foo'
次にtitle以外の要素を変更するときと同様にquerySelector()
で返却されたHTMLElementを操作する方法もあります。
document.querySelector('title').textContent = 'foo'
小ネタです。
LinuxやmacOS上で特定サイズのファイルを作成するにはdd
コマンドを利用します。以下のコマンドを実行すると中身がすべてゼロの1kbyteのファイルを生成できます。
$ dd bs=1024 count=1 if=/dev/zero of=file1
$ ls -l
total 8
-rw-r--r-- 1 katsube staff 1024 2 4 17:53 file1
odコマンドでバイナリファイルとして表示すると、以下のようにすべて0が記録されていることを確認できます。
$ od test1
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
0002000