HiÐΞClassic

TrashBox for Spams v2(NFTのゴミ箱V2)でOpenSeaのスパムトークンを安全に捨てる

Nuko
3 years ago
TrashBox for Spams v2(NFTのごみ箱)の技術的説明はじめにスパム"NFT"の種類スパム"NFT"②SVG as imageスパム"NFT"③スパムを安全にすてる

TrashBox for Spams v2(NFTのごみ箱)の技術的説明

はじめに

下記のサイトでOpenSeaのスパムトークンを安全に捨てることができるDappを提供しています。この記事ではこのDappが”安全”にスパムを捨てることができることを説明します。

NFTのごみ箱 https://crypto-creators.app/trashboxV2

なお、結論だけ先に書くと『NFTのごみ箱ではOpenSeaの共用コントラクトだけを対象としており、画像の表示にはimgタグを使って表示しているから』です。

この記事の中では、ERC721とERC1155のどちらも"NFT"と表記します(正確にはERC1155にはFTのものも含まれますが、この記事の趣旨から外れるためわかりやすさを重視しています)

スパム"NFT"の種類

スパム"NFT"にはいくつか種類があり、私が認識している範囲では下記の3つです。

  1. 宣伝目的or二次流通のロイヤリティ目的でスパムをばらまいているもの(多くがOpenSeaの共用コントラクト)
  2. スパム"NFT"を閲覧した人から資産を抜き出すもの(コントラクトはいろいろ)
  3. スパム"NFT"を捨てたり誰かに送付したときに資産を抜き出すもの(OpenSeaの共用コントラクトではない細工されたコントラクト)

上記の3つのスパム"NFT"のうち、2と3は資産を抜き出す仕組みがspammerにより用意されていますが、その仕組みはそれぞれ異なります。

スパム"NFT"②

2はJavaScriptを仕込んだSVGを"NFT"のイメージに設定し、SVGに埋め込まれたScriptを実行することで、ウォレットのトランザクション承認画面を表示し、資産をtransferしようとするものです。このスパムの場合、SVGの仕様により、SVGファイルがImgタグで表示されている限りスクリプトが実行されないことが保証されています。

SVG as image

Markup languages like HTML (and SVG itself) can reference SVG as an image with the tag (HTML namespace) or tag (HTML or SVG namespace).

If an SVG file is fetched as image, then certain requirements apply to this document:

  • Scripts must not be executed.

https://www.w3.org/wiki/SVG_Security

SVGに埋め込まれたスクリプトが実行されるのはobjectタグでsvgを表示している場合か、直接ブラウザにsvgのurlを入力して表示した場合です。OpenSeaにおいて、SVGはimgタグで表示されていますので、SVGファイルを直接開かない限り、不正なコードが実行されることはありません。

スパム"NFT"③

このタイプの"NFT"はコントラクト自体に細工をしており、"NFT"を転送するときに呼ばれるtransferFrom関数等に細工がされており、その関数内でEtherやMaticその他ERC20コインをspammerに転送するコードが実行しようとします。

このケースタイプのスパムの場合、コントラクトに詳しくないとスパムを転送しようとするときに何が実行されるかを事前に知ることが難しいため、触らない方がよいです。

スパムを安全にすてる

以上のように分類したスパム"NFT"を安全に捨てる際は、コントラクトに細工されていないOpenSeaの共用コントラクトで作成されたスパムだけを捨てればよいことになります。

このDappでは接続されたアドレスのERC721/1155のトークン一覧を外部APIで取得し、その中から、OpenSeaの共用コントラクトだけを抽出して表示しています。また、画像の表示の際も、imgタグで画像を表示しているため、万一SVG等にスクリプトが入っていたとしても実行されません。

以上が、このツールでスパム"NFT"を安全に捨てられる仕組みです。


コメント
いいね
投げ銭
最新順
人気順
Nuko
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン