<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Csp on plzhans blog</title><link>https://blog.plzhans.com/ja/tags/csp/</link><description>Recent content in Csp on plzhans blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Thu, 03 Sep 2026 11:08:00 +0000</lastBuildDate><atom:link href="https://blog.plzhans.com/ja/tags/csp/index.xml" rel="self" type="application/rss+xml"/><item><title>SEO監査が指摘するセキュリティヘッダー4つを、Cloudflareでコードなしに適用する</title><link>https://blog.plzhans.com/ja/posts/120-cloudflare-security-headers-hsts-csp/</link><pubDate>Sun, 30 Aug 2026 01:25:00 +0000</pubDate><guid>https://blog.plzhans.com/ja/posts/120-cloudflare-security-headers-hsts-csp/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/120-cloudflare-security-headers-hsts-csp/assets/1_bb515481-7252-4c3f-94cb-0474c42c9d1c_hu_b1596e5cf95128e.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/120-cloudflare-security-headers-hsts-csp/assets/1_bb515481-7252-4c3f-94cb-0474c42c9d1c_hu_78a6ae4905cadc2c.png" alt="CloudflareとHTMLのmetaタグでセキュリティヘッダーを分けて適用する構成を示した代表画像" width="1200" height="630" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.plzhans.com/posts/120-cloudflare-security-headers-hsts-csp/assets/2_3cb22a0f-7e83-805e-96d1-eef71485d603.png" alt="CloudflareとHTMLのmetaタグでセキュリティヘッダーを分けて適用する構成を示した代表画像" loading="lazy"&gt;&lt;/p&gt;&#10;&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;SEO監査レポートで、4つのセキュリティヘッダーが指摘されることがあります。&lt;code&gt;Strict-Transport-Security&lt;/code&gt;、&lt;code&gt;Content-Security-Policy&lt;/code&gt;、&lt;code&gt;X-Content-Type-Options&lt;/code&gt;、&lt;code&gt;Referrer-Policy&lt;/code&gt;です。&lt;/p&gt;&#10;&lt;p&gt;最初はなぜこれがSEO項目なのかと思うはずです。結論から言うと、&lt;strong&gt;これらのヘッダーは検索順位を直接上げてくれるわけではありません。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;この記事では、なぜSEO監査にセキュリティヘッダーが含まれるのか、各ヘッダーが何をするのか、そしてCloudflareを前段に置いた静的ブログで&lt;strong&gt;後から管理しやすい組み合わせ&lt;/strong&gt;で適用する方法を整理します。&lt;/p&gt;&#10;&lt;h2 id="なぜseoレポートがセキュリティヘッダーを指摘するのか"&gt;なぜSEOレポートがセキュリティヘッダーを指摘するのか&lt;/h2&gt;&#10;&lt;h3 id="lighthouseスコアに含まれている"&gt;Lighthouseスコアに含まれている&lt;/h3&gt;&#10;&lt;p&gt;ほとんどのSEO監査ツールはGoogle Lighthouseをベースに技術SEOスコアを算出します。Lighthouseの4つのカテゴリのうち1つが&lt;strong&gt;Best Practices&lt;/strong&gt;で、ここにCSP、HSTS、&lt;code&gt;X-Content-Type-Options&lt;/code&gt;のチェックが含まれています。&lt;/p&gt;&#10;&lt;p&gt;厳密にはセキュリティ衛生の点検なのですが、SEO監査フレームワークに組み込まれて一緒に報告されているのです。検索エンジンがこのヘッダーを読んで順位付けしているわけではありません。&lt;/p&gt;&#10;&lt;h3 id="本当のつながりはハッキングされた時の結果"&gt;本当のつながりはハッキングされた時の結果&lt;/h3&gt;&#10;&lt;p&gt;実質的なつながりは次の経路です。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;XSSやコンテンツインジェクションでスパムリンクや悪意のあるスクリプトが挿入される。&lt;/li&gt;&#10;&lt;li&gt;Google Safe Browsingが検索結果に警告を付けるか、インデックスから除外する。&lt;/li&gt;&#10;&lt;li&gt;トラフィックが一夜にして消える。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;セキュリティヘッダーは1番が起こる確率を下げる予防措置です。監査レポートがこの項目を高優先度に分類するのは、&lt;strong&gt;発生確率が高いからではなく、起きた時のインパクトが大きいから&lt;/strong&gt;です。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;💡 まとめると「セキュリティヘッダー → 順位上昇」ではなく、「セキュリティヘッダー不在 → ハッキングリスク → (発生した場合)順位崩壊」という間接的で非対称な関係です。&#10;ユーザーアップロードもログインフォームもない静的ブログなら攻撃対象領域そのものが小さいため、優先度としては致命的というよりは、やっておくと安全な予防接種に近いものです。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="各ヘッダーの役割"&gt;各ヘッダーの役割&lt;/h2&gt;&#10;&lt;h3 id="strict-transport-security-hsts"&gt;Strict-Transport-Security (HSTS)&lt;/h3&gt;&#10;&lt;p&gt;ブラウザに対して、このドメインには今後必ずHTTPSでのみ接続するよう指示します。&lt;code&gt;http://&lt;/code&gt;でリクエストが発生してもサーバーに確認せず、ブラウザが即座に&lt;code&gt;https://&lt;/code&gt;に変換します。&lt;/p&gt;&#10;&lt;p&gt;すでに301でHTTPSリダイレクトをしていても、&lt;strong&gt;その最初のリクエストの瞬間は平文&lt;/strong&gt;です。公共Wi-Fiのような環境で攻撃者が中間で傍受し、偽のページを表示するSSLストリッピングが可能な区間がまさにここです。HSTSはその区間をなくします。&lt;/p&gt;&#10;&lt;h3 id="content-security-policy-csp"&gt;Content-Security-Policy (CSP)&lt;/h3&gt;&#10;&lt;p&gt;スクリプト、画像、スタイルをどの取得元から読み込めるかを定めるホワイトリストです。中核となる役割はXSS防御です。&lt;/p&gt;&#10;&lt;p&gt;外部依存(コメントウィジェット、アナリティクスなど)のいずれかがサプライチェーン攻撃を受けたり、コンテンツパイプラインのバグでエスケープされていないテキストがそのままHTMLに入り込む事故が起きても、許可されていない取得元からのスクリプト実行をブラウザが拒否します。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;一次防御線が突破されても機能する二次防御線&lt;/strong&gt;だと考えてください。&lt;/p&gt;&#10;&lt;h3 id="x-content-type-options-nosniff"&gt;X-Content-Type-Options: nosniff&lt;/h3&gt;&#10;&lt;p&gt;ブラウザがサーバーの示した&lt;code&gt;Content-Type&lt;/code&gt;を無視して、ファイルの内容を見て種類を自ら推測するMIMEスニッフィングを防ぎます。&lt;/p&gt;&#10;&lt;p&gt;この推測が悪用されると、実行されてはいけないファイルがスクリプトとして実行される迂回経路が生まれます。ユーザーアップロードのないブログならリスクは低いですが、副作用がないためそのまま有効にしておく項目です。&lt;/p&gt;&#10;&lt;h3 id="referrer-policy"&gt;Referrer-Policy&lt;/h3&gt;&#10;&lt;p&gt;訪問者が他のサイトへ移動したり外部リソースを読み込んだりする際、どのページから来たのかをどこまで渡すかを定めます。&lt;/p&gt;&#10;&lt;p&gt;最近のブラウザは何も指定しなくてもデフォルト値がすでに&lt;code&gt;strict-origin-when-cross-origin&lt;/code&gt;になっています。以前のデフォルトだった&lt;code&gt;no-referrer-when-downgrade&lt;/code&gt;は、プロトコルさえ同じであればパスまで含めた完全なURLを渡していましたが、2020年の仕様改定で基準が変わりました。&lt;/p&gt;&#10;&lt;p&gt;そのため、この項目は「今まさに情報が漏れている」というよりは、&lt;strong&gt;ブラウザのデフォルト値に依存せず、サイトが望むポリシーを明示しておく&lt;/strong&gt;という意味合いが大きいです。SEOよりも訪問者のプライバシーの性格が強い項目です。&lt;/p&gt;&#10;&lt;h2 id="どこに何を置くか"&gt;どこに何を置くか&lt;/h2&gt;&#10;&lt;p&gt;ヘッダーを全部Cloudflareに集約することもできますし、全部HTMLに入れることもできます。実際に運用してみると、&lt;strong&gt;値が変わる頻度&lt;/strong&gt;が基準になります。&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;ヘッダー&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;置き場所&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;理由&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Strict-Transport-Security&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cloudflare&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;一度有効にすれば変わることがない&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;X-Content-Type-Options&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cloudflare&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;値が&lt;code&gt;nosniff&lt;/code&gt;固定である&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Referrer-Policy&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cloudflare&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;metaでもできるがヘッダーの方が確実&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;X-Frame-Options&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cloudflare&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;値が固定で、metaでは代替できない&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Content-Security-Policy&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;HTML meta&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;外部サービスを追加するたびに値が変わる&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;CSPだけ性格が異なります。アナリティクスを乗り換えたりコメントウィジェットを追加するたびに許可元を修正する必要があり、これをCloudflareに置くと**サイトをいじるたびにダッシュボードに入らなければなりません。**サイトのリポジトリで一緒に管理する方がはるかに楽です。&lt;/p&gt;&#10;&lt;h2 id="cloudflareに置くヘッダー"&gt;Cloudflareに置くヘッダー&lt;/h2&gt;&#10;&lt;h3 id="1-hstsとnosniffは1画面で完結する"&gt;1. HSTSとnosniffは1画面で完結する&lt;/h3&gt;&#10;&lt;p&gt;SSL/TLS → Edge Certificates → &lt;strong&gt;HTTP Strict Transport Security (HSTS)&lt;/strong&gt; → Enable HSTS&lt;/p&gt;</description></item><item><title>テレグラムのトーク履歴をバックアップする方法 - インストール不要、ブラウザからzipでエクスポート</title><link>https://blog.plzhans.com/ja/posts/118-telegram-chat-backup/</link><pubDate>Mon, 27 Jul 2026 05:15:00 +0000</pubDate><guid>https://blog.plzhans.com/ja/posts/118-telegram-chat-backup/</guid><description>&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/1_3a822a0f-7e83-8070-a296-d9dffad002b5_hu_c19ac00cb8b5ba90.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/1_3a822a0f-7e83-8070-a296-d9dffad002b5_hu_b576346bca0878a1.png" alt="インストール不要でブラウザからテレグラムのトークをzipにエクスポートするバックアップツールを表すイメージ画像" width="1200" height="670" loading="eager" fetchpriority="high"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;テレグラムのトーク履歴を丸ごとバックアップしたいとき、インストールも会員登録もなしで使えるツールを作りました。&lt;/p&gt;&#10;&lt;p&gt;ブラウザ上でそのままログインした後、好きなトークルームを選んでzipとしてダウンロードします。&lt;/p&gt;&#10;&lt;p&gt;何より**間に私たちのサーバーが存在しません。**ブラウザがテレグラムと直接つながるため、電話番号やログインコードが外部に漏れることはありません。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;すぐに使う: &lt;a href="https://telegram-exporter.plzhans.com/" target="_blank" rel="noopener noreferrer"&gt;https://telegram-exporter.plzhans.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;zipダウンロード: &lt;a href="https://github.com/plzhans/telegram-chat-exporter/releases/latest/download/telegram-exporter.zip" target="_blank" rel="noopener noreferrer"&gt;https://github.com/plzhans/telegram-chat-exporter/releases/latest/download/telegram-exporter.zip&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;テレグラム公式のエクスポート機能も、全体バックアップやトークルームごとのエクスポートにきちんと対応しています。&lt;/p&gt;&#10;&lt;p&gt;このツールはそれを置き換えるためではなく、&lt;strong&gt;公式エクスポートが使いにくい部分&lt;/strong&gt;を補うために作りました。&lt;/p&gt;&#10;&lt;p&gt;違いは次のとおりです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;日付期間を指定&lt;/strong&gt;して、必要な区間だけをエクスポートできます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;選んだ特定のトークルームだけ&lt;/strong&gt;を選んでエクスポートできます。複数のトークルームをまとめて選ぶこともできます。&lt;/li&gt;&#10;&lt;li&gt;エクスポート結果は&lt;strong&gt;会話の吹き出し形式&lt;/strong&gt;で表示されます。オフラインでもそのまま見返せます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;匿名化処理&lt;/strong&gt;をオンにできます。名前・会員番号・プロフィール写真を隠したままファイルを残せます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;ソースコードはすべて公開&lt;/strong&gt;されています。コードを直接確認し、そのままビルドできます。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;HTMLファイルベース&lt;/strong&gt;なので、PC・モバイルのブラウザさえあればどこでも使えます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;インストール不要でブラウザからすぐに使えますし、ローカルにzipをダウンロードして&lt;code&gt;index.html&lt;/code&gt;を開いてもかまいません。&lt;/p&gt;&#10;&lt;p&gt;間に私たちのサーバーが存在しないため、電話番号やログインコードが外部に送られることはありません。&lt;/p&gt;&#10;&lt;p&gt;実装の詳細とソースコードはすべてGitHubで公開されています。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/plzhans/telegram-chat-exporter" target="_blank" rel="noopener noreferrer"&gt;https://github.com/plzhans/telegram-chat-exporter&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;サイトのデプロイはGitHub Actionsで自動化されています。コードをプッシュするとビルド後、すぐにGitHub Pagesへ反映されます。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="使い方"&gt;使い方&lt;/h2&gt;&#10;&lt;p&gt;インストールは不要です。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://telegram-exporter.plzhans.com/" target="_blank" rel="noopener noreferrer"&gt;サイト&lt;/a&gt;にアクセスするか、&lt;a href="https://github.com/plzhans/telegram-chat-exporter/releases/latest/download/telegram-exporter.zip" target="_blank" rel="noopener noreferrer"&gt;リリースzip&lt;/a&gt;をダウンロードして&lt;code&gt;index.html&lt;/code&gt;をダブルクリックするだけです。&lt;/p&gt;&#10;&lt;p&gt;流れは次のとおりです。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;開始方法を選びます。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/2_3a822a0f-7e83-8103-9199-d52bd3d4874a_hu_a0b0010c262c836.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/2_3a822a0f-7e83-8103-9199-d52bd3d4874a_hu_63e2e39512c78720.png" alt="開始方法選択画面" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;ログインします。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;電話番号を入力すると、テレグラムがログインコードを送ってきます。そのコードを入力します。2FAを有効にしている場合はパスワードも入力します。&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/3_3a822a0f-7e83-819e-a127-cafde748664c_hu_a2310c3ebbbc03d6.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/3_3a822a0f-7e83-819e-a127-cafde748664c_hu_3beef758805f14ee.png" alt="ログインコード入力" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;トーク内容を確認します。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;トークルームを開くと、スタンプや写真もそのまま表示されます。カレンダーをクリックすると、目的の日付にすぐジャンプできます。&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/4_3a822a0f-7e83-819d-ba89-d0a9c61c1152_hu_6e9fe72c24044af8.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/4_3a822a0f-7e83-819d-ba89-d0a9c61c1152_hu_5694fca6f1ba763b.png" alt="スタンプまでそのまま表示されるトーク画面" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/5_3a822a0f-7e83-8114-a1ae-ee5255d7e885_hu_b616c09637210b24.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/5_3a822a0f-7e83-8114-a1ae-ee5255d7e885_hu_20dc12b9fa84061c.png" alt="カレンダーで特定の日付にジャンプ" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;範囲を指定してエクスポートします。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;期間を選ぶと、進捗率とキャンセルボタンが表示され、zipが作成されます。&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/6_3a822a0f-7e83-8141-867a-c44c4e76f3cd_hu_2381ca50ea1c0639.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/6_3a822a0f-7e83-8141-867a-c44c4e76f3cd_hu_26a6c94cf4815821.png" alt="何をエクスポートするか選択" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/7_3a822a0f-7e83-8196-8ba4-ec3650e65d48_hu_7af596de457185db.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/7_3a822a0f-7e83-8196-8ba4-ec3650e65d48_hu_9542f6dd81f8694c.png" alt="エクスポート進行画面" width="696" height="1522" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;完了すると&lt;code&gt;telegram-&amp;lt;チャット名&amp;gt;-&amp;lt;日付&amp;gt;.zip&lt;/code&gt;が生成されます。解凍して&lt;code&gt;index.html&lt;/code&gt;を開くと、会話がそのまま再現されます。インターネットもこのツールも必要ありません。&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/8_3a822a0f-7e83-8178-b4ac-d05db0d62f47_hu_e7ec835e86a67733.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/8_3a822a0f-7e83-8178-b4ac-d05db0d62f47_hu_deeb249485822429.png" alt="解凍すると出てくるファイル群。&#10;最初にindex.htmlを開きます。" width="778" height="1690" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/9_3a822a0f-7e83-81ad-bf91-c958f51759e0_hu_4ddef60a6b81ef4a.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/9_3a822a0f-7e83-81ad-bf91-c958f51759e0_hu_5024d7a2f458d7b7.png" alt="名前をそのまま残した結果。&#10;index.htmlを開くと、会話がそのまま再現されます — ツールもインターネットもなしで。" width="720" height="1556" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;💡 エクスポート時に、会話の参加者を&lt;strong&gt;名前のまま&lt;strong&gt;にすることも、&lt;/strong&gt;匿名化&lt;/strong&gt;することもできます。デフォルトは名前のままです。&lt;br&gt;&#10;匿名化をオンにすると、名前はA・B・C、会員番号は1・2・3に変わります。&lt;br&gt;&#10;プロフィール写真とトークルーム名も隠されるため、ファイルを他人にそのまま渡しても誰が誰か分かりません。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/10_3a822a0f-7e83-81e0-abf8-dc6319619c32_hu_a6d67294048db848.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/10_3a822a0f-7e83-81e0-abf8-dc6319619c32_hu_e471be0c103e12a2.png" alt="匿名化処理をオンにした結果。&#10;名前がA・B・Cに変わるため、他人に渡しても安全です。" width="720" height="1556" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;h3 id="複数のトークルームを一度に"&gt;複数のトークルームを一度に&lt;/h3&gt;&#10;&lt;p&gt;1つずつエクスポートするだけでなく、複数のトークルームを選んで一度にエクスポートすることもできます。トークルームごとに別々のファイルが生成されます。まとめてバックアップする際に便利です。ただし添付ファイルまで含めると、トークルームが多いほど時間がかかり、容量も大きくなります。&lt;/p&gt;&#10;&lt;p&gt;選んだすべてのトークルームに、同じ設定が一括で適用されます。どのトークルームをバックアップするか選んで開始すると、トークルームごとに順番にzipとして出力されます。&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/11_3aa22a0f-7e83-8135-a7a7-fb2bded2dec4_hu_fcfedb57d99c094b.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/11_3aa22a0f-7e83-8135-a7a7-fb2bded2dec4_hu_a31910d5ebfae1e0.png" alt="選択したすべてのトークルームに共通で適用される設定" width="784" height="1690" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;picture&gt;&#10; &lt;source srcset="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/12_3aa22a0f-7e83-81fa-bf32-e800f16b237b_hu_887a5f3df83292f2.webp" type="image/webp"&gt;&#10; &lt;img src="https://blog.plzhans.com/posts/118-telegram-chat-backup/assets/12_3aa22a0f-7e83-81fa-bf32-e800f16b237b_hu_9756e2211e9ef932.png" alt="バックアップするトークルームを選択" width="776" height="1688" loading="lazy"&gt;&#10; &lt;/picture&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="なぜ作ったのか"&gt;なぜ作ったのか&lt;/h2&gt;&#10;&lt;p&gt;公式のエクスポート機能で、全体・トークルームごとのバックアップはすでに可能です。&lt;/p&gt;&#10;&lt;p&gt;私が困っていたのは別のところでした。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;特定の期間だけを切り出したいとき&lt;/li&gt;&#10;&lt;li&gt;いくつかのトークルームだけを選んで素早く残したいとき&lt;/li&gt;&#10;&lt;li&gt;エクスポートしたファイルを会話のように読み返したいとき&lt;/li&gt;&#10;&lt;li&gt;証拠・共有用に名前と顔を隠したいとき&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;この4つをブラウザ上でそのまま実現することが目標でした。&lt;/p&gt;</description></item></channel></rss>