AssetBundle (アセットバンドル) は、ゲームのビルド時に配布することもできますが、リモートサーバーからダウンロードすることもできます。アセットバンドルをダウンロードする際には、アセットバンドルのデータが破損したり、悪意のある攻撃を避けるように注意する必要があります。アセットバンドルには実行可能なコードは含まれていませんが、シリアル化されたデータを変更すると、攻撃者がゲームコードやUnity ランタイムの脆弱性を悪用することが可能になります。
UnityWebRequestAssetBundle can be used to download and cache AssetBundles from the internet. When using this API you should use the HTTPS protocol in your URL, unless your URL refers to a local web server that runs on the same machine. The HTTP protocol is not secure and is vulnerable to a malicious man in the middle attack.
32 ビットのチェックサムは、アセットバンドルのビルドプロセスで生成されます。アセットバンドルのローディング API を通じてこの CRC を提供すると、ロードシステムはロードする前にアセットバンドルのチェックサムを計算します。アセットバンドルの CRC が提供された CRC と一致しない場合、アセットバンドルはロードされません。CRC をチェックすることで、アセットバンドルのデータがビルド後に破損したり改ざんされたりしていないことを確認できます。
他のプレイヤーに配信するコンテンツ (User Generated Content、ユーザー生成コンテンツ) をユーザーがアップロードすることを許可している場合、不適切または悪意のあるコンテンツがないか、このデータを確認するのは開発者の責任です。ユーザーにアセットバンドルのバイナリファイルのビルドとアップロードを許可することは推奨しません。望ましいのは、ユーザーにソースアセットをアップロードしてもらい、開発者がユーザーのためにアセットバンドルのバイナリファイルを作成することです。これにより、悪意のあるコンテンツや不適切なコンテンツを手動および自動でフィルタリングすることが容易になります。また、Unity のバージョンが上がっても、必要に応じてアセットバンドルを再作成することができます。