または画像をドラッグ&ドロップ(12MB・32メガピクセルまで)
QRコード読み取りツール (画像・カメラ対応)
画像またはカメラから QR コードを読み取り、危険スキーム、短縮URL、IP直接指定、Punycode、認証情報付きURLなどの登録済みパターンを確認。処理はブラウザ内で完結します。
QRコード読み取りツール (画像・カメラ対応)について
QR コード読み取りツールとは
本ツールは、画像ファイルまたはカメラから QR コードを読み取り、その内容を警告付きで表示するツールです。javascript: や data: などの危険な URI、URL 短縮サービス、IP アドレス直接指定、Punycode、URL 内の認証情報など、登録済みのパターンを確認します。警告がないことはリンク先の安全性を保証しません。
すべての処理はあなたのブラウザ内で完結します。画像もカメラ映像も外部サーバには送信されません。
免責事項 — 自己責任での利用
本ツールは QR コードの内容を表示・解析するのみで、リンク先や読み取った内容の安全性を保証しません。読み取った QR コードに含まれるリンクをクリックする・データを実行する等の操作は、利用者ご自身で安全性を確認した上で行ってください。当社の責任は、免責事項および適用法令で認められる範囲に限られます。
本ツールが「危険」と判定しなかったコンテンツでも、フィッシングサイト・マルウェア配布サイト等の可能性はゼロではありません。リンク先のドメイン・運営者・通信内容を必ずご自身で確認してから利用してください。
QR コードを悪用した誘導への公的な注意喚起
- FBI / IC3 公式注意喚起 (2022年1月) — Public Service Announcement I-011822-PSA「Cybercriminals Tampering with QR Codes to Steal Victim Funds」で悪意のある QR コードを警告
- FTC 消費者警告 (2023年12月) — 「Scammers hide harmful links in QR codes to steal your information」
QR コードでは読み取るまでURLを直接確認しにくいため、公式資料はいずれも、読み取り後に表示された接続先を確認し、ログイン情報や決済情報を入力する前に正規のサイトか確かめるよう案内しています。
本ツールが検出する危険・警告
⛔ 即座にブロック (リンクオープン不可)
javascript:— クリックでブラウザが任意の JavaScript を実行する典型的 XSSdata:— 任意の HTML/JS を埋め込めるためフィッシング表示に悪用vbscript:— IE 用の古い任意コード実行スキームfile:— ローカルファイルへの参照を試みる- URL のユーザー名・パスワード形式 —
trusted.example@evil.exampleのように接続先を誤認させる形式
⚠ 警告表示
tel:— タップで電話発信、プレミアムレート詐欺sms:/smsto:/mms:/mmsto:/matmsg:— SMS/MMS 作成画面の起動mailto:— メール作成画面の自動起動intent://— Android アプリの起動誘導WIFI:/DPP:— Wi-Fi接続やEasy Connectによる機器登録URLTO:/MEBKM:— ブラウザ表示・ブックマーク登録用のURL形式。格納されたHTTP(S) URLや危険スキームも同じ安全性検査を適用vCard/MECARD内のURL項目 — 連絡先データに格納されたURLにも同じ登録済みパターン検査を適用geo:— 地図アプリで指定座標を開くftp:、otpauth:、bitcoin:などHTTP(S)以外のURIスキーム — アプリ起動・認証情報登録・決済操作等の可能性- HTTP (暗号化なし) URL
- IP アドレス直接アクセス (203.0.113.x 等)
https:example.comなど、ブラウザが補正してURLとして扱う非正規のHTTP(S)表記localhost、.local、単一ラベルなど端末内・組織内を指す可能性があるホスト- 標準のHTTP/HTTPSポート以外を明示したURL
- punycode (xn--) ドメイン — 多くは国際化ドメインだが偽装の可能性
- Unicode 表示でラテン文字とキリル・ギリシャ・日本語・CJK文字が混在するドメイン
- 双方向文字制御・ゼロ幅スペースなど、表示を誤認させ得る不可視書式文字(HTTP(S)やその他のURI内でpercent-encodeされた場合を含む)
- URL 短縮サービス (bit.ly, t.co, tinyurl, etc.) — 最終遷移先が見えない
技術仕様
- 復号エンジン: 利用中のブラウザが QR 形式の
BarcodeDetectorAPI に対応する場合は優先し、非対応または失敗時は jsQRへフォールバック。通常は Worker 上で解析し、Workerを利用できない場合は画像をさらに縮小してブラウザのメイン処理へ退避 - カメラ: 標準
getUserMediaAPI、複数カメラ対応 (内蔵/外付け、前面/背面切替)。QR検出時はカメラを停止 - 表示: 全ての文字列出力を React の自動エスケープ (textContent) で行う。
dangerouslySetInnerHTMLは一切使用しない - 文字データの扱い: C0 制御文字と U+007F のうち改行・タブ・復帰を除く文字、および表示順を変える双方向制御文字を安全表示から除去。URLや危険スキームの解釈に影響する登録済み不可視書式文字も除去し、警告を表示します。一般テキストのZWJ/ZWNJは原文のまま保持し、それ以外の登録済み不可視書式文字は原文を保持した上で警告します
- 接続先表示: URL APIで正規化したホストと明示ポートを分離表示。
URLTO:・MEBKM:内のURLと、vCard・MECARD内のURL項目にも同じ検査を適用します。構造化データにURLが1件だけ含まれる場合は接続先も表示します。非正規URL、ローカル向けホスト、非標準ポート、その他の登録済み警告があるURLは直接リンク化しません - 入力上限: 12MB、最大辺 8192px、合計 32メガピクセルまで。復号時は最大 4メガピクセルへ縮小
- ネットワーク: 画像もカメラ映像も外部送信なし。完全クライアント処理
- HTTPS 必須: カメラ機能はブラウザのセキュリティ制約により HTTPS でのみ動作 (localhost を除く)
対応する QR コード種別
| 種別 | 例 | 本ツールの判定 |
|---|---|---|
| URL | https://example.com | HTTPS 推奨・登録済みパターン確認 |
| Wi-Fi | WIFI:T:WPA;S:Net;P:pass;; / DPP:... | 警告表示・自動接続や機器登録なし |
| 連絡先 (vCard) | BEGIN:VCARD ... END:VCARD | テキスト表示・URL項目を検査 |
| 連絡先 (MECARD) | MECARD:N:山田;TEL:090...;; | テキスト表示・URL項目を検査 |
| 電話番号 | tel:+819012345678 | 警告表示 |
| SMS / MMS | sms:..., smsto:..., mms:..., mmsto:..., matmsg:... | 警告表示 |
| URL格納形式 | URLTO:https://... / MEBKM:...URL:https://...;; | 警告表示・リンク化なし |
| メール | mailto:test@example.com | 警告表示 |
| 位置情報 | geo:35.6895,139.6917 | 警告表示 |
| プレーンテキスト | 任意の文字列 | 表示のみ・リンク化なし |
よくある質問
- Q. 読み取った画像やカメラ映像はサーバに送信されますか?
- 本ツールの読み取り処理はブラウザ内で行い、QR の内容、選択画像、カメラ映像を本ツールのサーバーへ送信しません。ただし、端末、ブラウザ、拡張機能、開いたリンク先など、本ツールの管理外にある処理まで保証するものではありません。
- Q. なぜ「javascript:」や「data:」をブロックするのですか?
- これらの URI スキームは、Webページ内でコードや埋め込みデータを扱うための形式で、意図しない動作や偽の画面表示に悪用される場合があります。本ツールでは文字列として表示するだけにし、リンク化しません。
- Q. URL 短縮サービスはなぜ警告対象なのですか?
- bit.ly や t.co などの短縮 URL は、文字列だけでは最終的な接続先を確認できません。本ツールでは登録済みの短縮サービスを警告し、直接リンク化しません。利用する場合は、送信者や案内元を別の手段でも確認してください。
- Q. 「同形異字攻撃 (homograph)」とは何ですか?
- ラテン文字の「a」とキリル文字の「а」(U+0430) のように、見た目が似ていてもコードポイントが違う文字を利用する偽装です。本ツールは Punycode を Unicode 表示へ戻し、複数の文字体系が混在する場合に警告します。ただし、単一文字体系だけで構成された偽装を含むすべての同形異字を判定するものではありません。Punycode を含むURLは混在の有無にかかわらず直接リンク化しません。
- Q. カメラが起動しません
- (1) HTTPS 接続でアクセスしているか確認してください (HTTP では動きません、localhost を除く)。(2) ブラウザのアドレスバーのカメラ許可アイコンをクリックして、本サイトに対するカメラ許可を確認してください。(3) 別のアプリ (Zoom など) がカメラを使用していないか確認してください。
- Q. QR が読み取れません
- 画像が暗い・小さい・歪んでいる場合は読み取れないことがあります。QR コード全体と周囲の余白が画面に入り、模様へピントが合う距離に調整してください。反射や影を避け、明るく撮影した画像も試してください。
- Q. 「登録済みの警告パターンは未検出」と表示されたリンクは安全ですか?
- 安全を保証する表示ではありません。本ツールは URI スキーム、URL形式、登録済みのパターンを確認しますが、HTTPSリンクの内容や運営者の正当性までは判断できません。画面に分離表示される接続先ホストを確認し、見覚えがなければリンクを開かないでください。
出典・参考文献
- FBI / IC3 Public Service Announcement I-011822-PSA (2022) — QR Code Tampering
- FTC Consumer Alert (2023) — Scammers hide harmful links in QR codes
- IPA (情報処理推進機構) — フィッシング対策
- Unicode Technical Standard #39 — Unicode Security Mechanisms
- RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax
- RFC 6350 — vCard Format Specification
- RFC 5891 — Internationalized Domain Names in Applications (IDNA): Protocol
- MDN Web Docs — BarcodeDetector API
- jsQR — Pure JavaScript QR code reading library (Apache 2.0)
- ZXing — Barcode Contents
- Android Open Source Project — Wi-Fi Easy Connect
関連記事
QR コードはなぜ同じデータでも模様が変わるのか ― マスクパターンとペナルティ計算
同じ文字列を QR コードにしても、生成ライブラリや条件で模様が変わることがあります。理由は、QR コードが8種類のマスクパターンを試し、読み取りにくい模様へペナルティを付けて最小スコアを選ぶからです。ISO/IEC 18004 の考え方、DENSO WAVE の公式情報、実用上の注意点を整理します。
バーコードの数学 — EAN-13 のチェックデジットとモジュール設計はなぜこうなったのか
コンビニの商品に印刷されている13桁のバーコード(JAN/EAN-13)。その1本1本の線にはmod10チェックデジット、奇数・偶数パリティ、左右ガードパターンなど緻密な設計が詰まっています。1974年のUPC誕生から現代のGS1体系まで、一次資料で構造を読み解きます。
リード・ソロモン符号の数学 — 有限体 GF(2⁸) から Voyager・QR・Blu-ray まで
1960 年に MIT Lincoln Lab で発表された Reed-Solomon 符号は、QR コード・CD/DVD/Blu-ray・深宇宙通信 (Voyager 2)・地上デジタル放送 (DVB) を支える誤り訂正の基盤技術です。有限体 GF(2^8) 上の多項式評価という原理から、符号化・シンドローム計算・誤り位置多項式の求解まで、原論文と CCSDS/ISO 規格を一次資料に整理します。


