質問: 皆さんがHP制作やApp(Android/IOS)などを自作で作って 公開する場合はどのようなセキュリティ対策を施しますか? 自分が考えているのは以下です。
回答: nativeでの技術で、著作権保護やセキュリティ対策を行なう方向性で動いているようです。 現時点では、質問に書かれている「JSによるコードの難読化」が、それに相当しますが、それをもっと技術を上げて行くそうです。 [HTML関連に著作権を主張することは可能であることについて] HTML関連では、美術や音楽に関することには、当然著作権を主張することは可能です。 しかし、「HTMLに著作権を主張する権利はない」と言う記事を見かけます。 そう言った記事をよく読んでみると、どうやら「HTMLには、著作権法で保護するレベルでの機能がない」と言うことに繋がってくるようです。 それでは、その機能をどうするのか。 質問者さんが質問であげたようなことで対処することになります。 その対処方法の技術強化が、最近注目されています。 以下に順番に説明します。 [HTMLは、そもそも低機能であることについて] そもそもHTMLは、機能面が考慮されていません。 よって、スクリプト言語側で、機能の向上をサポートしていました。 しかし、HTML自体を可能なレベルで機能向上することになりました。 Appleが提案したHTML5と、Microsoftが提案したXAMLです。 XAMLは、HTMLではありませんが、XMLを使って高機能化したマークアップ言語です。 HTML5も、XAMLも、動画を作ったり、ゲームを作れる高機能なマークアップ言語です。 ただし、HTML5は、2Dしか扱えませんが、XAMLは、2Dから3Dまで扱えますので、XAMLのほうが高機能です。 しかし、標準化団体のW3Cは、XAMLではなく、HTML5を採用しました。 HTML5のほうが、従来からのHTML技術を考慮しているからです。 しかし、HTML5も、XAMLも、高機能とは言え、著作権保護やセキュリティ対策を行なえる能力はありません。 よって、W3CとAppleががっちり手を組んで、さらなる高機能化を行なう必要がありました。 HTML5で、さらに高機能化するのは難しくても、HTML5仕様を取り入れたスクリプト言語のほうで、高機能化することは可能です。 しかし、W3CとAppleは対立してしまい、W3C仕様のHTML5と、Apple仕様のHTML5に分かれてしまいました。 その結果、大きな進展もなく、長い月日が経過しました。 [インターネット系でnativeが、あまり好まれていなかったことについて] native(ネイティブ)とは、C言語やC++で作るハード側の処理です。 しかし、インターネットは、このnativeを拒絶していました。 基本的にインターネットでは、標準団体が認可した標準技術を使う。 標準団体に認可されていない技術も使えますが、その場合は世間が標準と認めるようなオープンな仕様の技術を使います。 これに対して、C言語やC++で作るnativeは、真逆な考え方で、標準に反します。 C言語やC++では、個々のOS仕様に依存したプログラミングが得意で、個々のOSの性能を十分に活かします。 また、C言語やC++では、個々のハード仕様に依存したプログラミングが得意で、個々のハードの性能を十分に活かします。 C言語やC++は、インターネットの考え方と逆なので、インターネットから拒絶されていました。 しかし、インターネットでも、ハード制御が必要な場合があります。 例えば、携帯電話でのアプリケーションソフトの開発です。 携帯電話は、小型なので、どうしても個々のハード仕様に依存してしまいます。 ガラケーに対して、スマートフォンは、だいぶハード仕様に依存しなくなりました。 しかし、今のスマートフォンでも、まだまだハード依存しているので、nativeの活用は重要になります。 別の例としては、IoT機器のインターネットからの制御です。 IoT機器は、ハードその物ですので、nativeが重要になります。 すなわち、インターネットでは、基本的にnativeを拒絶したいが、しぶしぶ受け入れられている状況です。 [nativeが本格的に受け入れられると、著作権対策の仕組みが組み込めることについて] 前述の通り、インターネットでは、nativeは、しぶしぶ受け入れられている状況です。 しかし、もしも本格的にnativeが受け入れられたら、そのnativeに、著作権保護やセキュリティ対策を行なう仕組みを組み込めます。 例えば、著作権のあるものに、電子的証明書を取り付け、電子マネーで購入する仕組みです。 また、暗号化する仕組みも、nativeなら、組み込みやすいです。 [現在の状況] インターネットにnativeを取り入れる試みは、昔からMicrosoftが積極的です。 そのため、「Microsoftは、インターネットの敵だ」と批判する人達が多くいます。 しかし、前述の通り、長い間、インターネットの技術の成長が止まった状況でした。 よって、Microsoftに対立していた企業達を含めて、多くのIT企業達が、Microsoftに協力的になりました。 本当は、早ければ2020年11月から、様子が見え始めて行く予定でした。 しかし、慎重に進めて行く方針のようです。 今は、取り合えずモバイル開発で、GoogleとMicrosoftががっちり手を組んで、nativeの強化を始めました。 Googleでは、Javaを中心にして、nativeの技術強化を行なっています。 Microsoftは、C#とC++を中心にして、nativeの技術強化を行なっています。 [jsでのnativeの技術強化] nativeの技術強化は、JavaやC#だけではありません。 React.jsとNode.jsとVue.jsが、nativeの技術強化を行なっています。