Show HN: Stop AI scrapers from hammering your self-hosted blog (using porn)

2025/12/17 5:42

Show HN: Stop AI scrapers from hammering your self-hosted blog (using porn)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(欠落している具体的な情報を補完)**

Summary

Fuzzy Canary は、AI 主導のスクレイパーからウェブページを保護する軽量ライブラリです。秘密裏に「カナリア」リンク(通常は無関係なサイトへのリンク)を埋め込み、これらはスクレイパーだけが閲覧できます。この仕組みは 2 通りのモードで動作します。

  1. サーバー側(推奨)

    • npm でインストール:
      npm i @fuzzycanary/core
      、または pnpm で:
      pnpm add @fuzzycanary/core
    • Next.js や Remix といった React ベースのフレームワークでは、ルートレイアウトに
      <Canary />
      コンポーネントを配置します。
      • Next.js App Router の場合は
        app/layout.tsx
        に追加。
      • Remix ではローダーから取得した user agent を
        <Canary userAgent={userAgent} />
        に渡します。
    • サーバー側でリクエストの User‑Agent を確認し、Google, Bing, DuckDuckGo 等既知の検索エンジンボットは除外されるため、彼らにはクリーンな HTML が返却されます。一方、スクレイパーはカナリアリンクを閲覧できます。
  2. クライアント側

    • メインエントリファイル(
      main.ts
      ,
      index.ts
      , または
      App.tsx
      )で
      @fuzzycanary/core/auto
      をインポートし、
      navigator.userAgent
      に基づくランタイム注入を有効化します。
    • React 以外のサイトでは
      getCanaryHtml()
      を呼び出して、その出力を
      <body>
      タグの最初に挿入することができます。

SEOへの影響:

  • サーバーサイドでレンダリングされたページは、ボットがフィルタリングされるため SEO に優しいままです。
  • 静的サイトジェネレーターはビルド時にカナリアを埋め込むため、クローラーに露出し検索可視性が低下する可能性があります。クライアント側で初期化すれば、ランタイムでボットを検知できるためこの問題を回避できます。

Fuzzy Canary を利用すると、サーバーサイドレンダリングされたサイトでは SEO を損なわずに AI スクレイピングを抑制できます。静的サイトは適切な注入戦略を選択する必要があります。

本文

ファジーキャナリー

AI 企業はトレーニングデータとして、誰もが運営するサイトをスクレイピングしています。
自分でブログをホスティングしている場合、対策できることはほとんどありません。ただし、サイトに「欲しくない」コンテンツがあると思わせるような手段はあります。ファジーキャナリー は、HTML に目に見えないリンク(ポルノサイトなど)を埋め込み、スクレイパーのコンテンツ保護機能をトリガーします。


使い始め

インストール

npm i @fuzzycanary/core
# または
pnpm add @fuzzycanary/core

使用方法

クライアント側とサーバー側の 2 通りがあります。
可能ならサーバー側を使うことをおすすめします。サーバー側では、最初から HTML にキャナリーが埋め込まれているため、JavaScript を実行しないスクレイパーでも検知できます。

サーバー側(推奨)

React ベースのフレームワーク(Next.js, Remix など)を使っている場合は、ルートレイアウトに

<Canary />
コンポーネントを追加します:

// Next.js App Router: app/layout.tsx
// Remix: app/root.tsx
// その他の React フレームワーク: ルートレイアウトファイル
import { Canary } from '@fuzzycanary/core/react'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <Canary />
        {children}
      </body>
    </html>
  )
}

Next.js の場合はこれだけで完了。
他のフレームワーク(例:Remix)では、ロード時にユーザーエージェントを渡す必要があります:

// Remix の例
export async function loader({ request }) {
  const userAgent = request.headers.get('user-agent') || ''
  return { userAgent }
}

export default function App() {
  const { userAgent } = useLoaderData()
  return (
    <html>
      <body>
        <Canary userAgent={userAgent} />
        {children}
      </body>
    </html>
  )
}

React 以外のフレームワークを使っている場合は、

getCanaryHtml()
ユーティリティを利用し、
<body>
タグの先頭に挿入してください。

クライアント側

静的サイトを構築しているか、クライアント側で注入したい場合は、エントリーファイルに自動初期化モジュールをインポートします:

// エントリーファイル(例:main.ts, index.ts, App.tsx)
import '@fuzzycanary/core/auto'

これだけで、ページロード時に自動的にキャナリーが注入されます。


SEO に関する注意点

ファジーキャナリーは正規の検索エンジンには表示されないように設計されています。
Google, Bing, DuckDuckGo など既知のボットリストを保持し、検出した場合はリンク注入をスキップします。

  • サーバーサイドレンダリングの場合はうまく機能します。サーバーが受信リクエストのユーザーエージェントを確認してから HTML にキャナリーを含めるか決定できるため、Google のクローラーにはきれいな HTML が渡り、AI スクレイパーだけがキャナリーを見ることになります。
  • 静的サイトの場合は問題があります。HTML はビルド時に生成され、単なるファイルとして配信されるためユーザーエージェントを確認できません。その結果、キャナリーはすべての閲覧者(Google も含む)に埋め込まれ、SEO に悪影響を与える可能性があります。
  • 静的サイトジェネレーターを使っている場合は、クライアント側初期化を採用する方が良いでしょう。JavaScript が実行時に
    navigator.userAgent
    を確認し、検索ボットには注入をスキップします。完全ではありません(JavaScript を実行しないボットには効きません)が、何もしないよりはずっと効果的です。

同じ日のほかのニュース

一覧に戻る →

2025/12/19 4:08

We pwned X, Vercel, Cursor, and Discord through a supply-chain attack

## Japanese Translation: Discordの新しいドキュメントプラットフォーム、Mintlifyにおいて、`/_mintlify/_static/[subdomain]/[…route]` エンドポイントを介して配信される任意の静的ファイルに悪意あるJavaScriptを注入できるクロスサイトスクリプティング(XSS)脆弱性が判明しました。16歳の高校生研究者は、Discord のドメインを指すSVG内にコードを埋め込み、そのリンクを開いた際にスクリプトが実行されることで、このサプライチェーン脆弱性を検証し、Mintlify の全顧客に影響する可能性があることを示しました。この欠陥は「xyzeva」という友人によって独立して確認され、両者は協力してテストと開示を行いました。報告後、Discord はドキュメントの公開を2時間停止し、以前のプラットフォームに戻し、すべての Mintlify ルートを削除(インシデントリンク: https://discordstatus.com/incidents/by04x5gnnng3)し、Mintlify は Slack を通じて問題を修正しました。研究者たちは合計で約11,000ドルの報奨金(Discordから4,000ドル、残りは Mintlify から)を受け取りました。この事例は、Twitter (X)、Vercel、Cursor、Discord 自体など多くのハイプロファイルユーザーに脅威を与える可能性がある単一のサードパーティコンポーネントのリスクを浮き彫りにし、外部サービスへのより厳格な検証と広範なセキュリティ監査の必要性を強調しています。

2025/12/17 6:04

Texas is suing all of the big TV makers for spying on what you watch

## Japanese Translation: > **概要:** > テキサス州司法長官ケン・パクストンは火曜日にソニー、サムスン、LG、ヒセン、TCL を対象に訴訟を提起し、同社のテレビが自動コンテンツ認識(ACR)を使用して視聴者の視聴内容を秘密裏に記録していると主張した。ACR はテレビ番組、ストリーミングサービス、YouTube、セキュリティカメラ、Apple AirPlay/Google Cast、および HDMI 接続デバイスなど、多岐にわたるソースから視聴覚データを取得し、訴訟ではメーカーがユーザーに対して隠れたまたは曖昧な開示で ACR の起動を促すと主張されている。サムスンとヒセンは 500 ミリ秒ごとにスクリーンショットを取得し、パクストンはデータがユーザーの知識なしに各社へ送信され、ターゲティング広告のために販売されると述べている。訴訟はテキサス州詐欺取引慣行法(Deceptive Trade Practices Act)を引用し、民事罰金およびテキサス州居住者からの ACR データ収集・共有・販売の停止を求めている。パクストンはまた TCL とヒセンの中国との関係に懸念を示し、同社のテレビを「中国支援監視デバイス」と呼んでいる。訴訟は Vizio が 2017 年に FTC およびニュージャージー州と合意した 220 万ドルの和解金を参照しており、類似の主張があったことを示している。サムスン、ソニー、LG、ヒセン、および TCL はまだコメント要請に応じていない。パクストンは「テレビを所有することは、ビッグテックや外国対立勢力に個人情報を渡すことを意味しない」と述べ、プライバシー保護への重点を強調した。

2025/12/19 3:55

How China built its ‘Manhattan Project’ to rival the West in AI chips

## Japanese Translation: **改善された要約** 深圳の研究所が、極紫外線(EUV)リソグラフィを使用して高度な半導体チップを製造できるプロトタイプを完成させました。EUVリソグラフィは、人間の髪の数千倍薄い回路をシリコンウェーハに刻むプロセスです。この機械は工場全床面積のほぼすべてを占める規模で、2025年初頭に完成し、現在テスト中です。元ASMLエンジニアがオランダ企業のEUV装置を逆解析して構築したもので、西側企業が長らく独占してきた技術です。プロトタイプが意図通りに機能すれば、中国はより細密な回路を持つチップを製造できるようになり、AIシステムやスマートフォン、高度兵器の性能向上につながります。この進展は、西側の独占的半導体製造能力から重要な技術が移転する可能性があり、世界のサプライチェーンと競争構造を変えることになるでしょう。

Show HN: Stop AI scrapers from hammering your self-hosted blog (using porn) | そっか~ニュース