8 ポイント 投稿者 GN⁺ 28 일 전 | 6件のコメント | WhatsAppで共有
  • Cloudflareが開発したEmDashは、WordPressの構造的な限界を克服するため、TypeScriptとサーバーレスアーキテクチャで新たに設計されたオープンソースCMS
  • プラグインを分離されたサンドボックス環境で実行し、WordPressサイトのセキュリティ問題の96%を占めていたプラグイン脆弱性を根本的に遮断
  • x402決済標準を内蔵し、コンテンツ単位の**オンデマンド課金(pay-per-use)**をサポート、AIベースのWebトラフィック時代に適した収益化構造を提供
  • Cloudflare Workersベースのサーバーレス構造により、リクエスト時に自動でスケールアップ・ダウンし、コスト削減と高性能処理を同時に実現
  • AIエージェント管理、Passkey認証、Astroテーマ構造などのモダンな機能を統合し、WordPressの精神を継承しつつ完全に新しく再構成されたCMS

EmDash 概要

  • EmDash は、WordPressの構造的な限界を解決するため新たに設計されたオープンソースCMSで、完全なTypeScriptベースサーバーレスアーキテクチャを採用
    • WordPressの中核機能とは互換性があるが既存コードは使用しておらず、MITライセンスで配布可能
    • Cloudflare WorkersDynamic Workerを利用し、各プラグインを独立した**分離環境(isolate)**で実行
    • Astroフレームワークを基盤に、コンテンツ中心のWebサイトに最適化されたパフォーマンスを提供
  • EmDashはGitHubで公開されており、CloudflareアカウントまたはNode.jsサーバー上に直接デプロイ可能
  • プラグインセキュリティ市場依存の解消AIベース管理x402決済対応など、WordPressが解決できなかった問題を根本から改善

WordPressの成果と限界

  • WordPressはインターネットの40%以上を支え、出版の民主化を牽引した代表的なオープンソース成功例
  • しかし24年が経過した現在、ホスティング環境と開発パラダイムは大きく変化
    • 初期にはVPSのレンタルが必要だったが、現在では世界中の分散ネットワークにJavaScriptバンドルをアップロードするだけでデプロイ可能
  • EmDashはWordPressの精神を受け継ぎながら、現代的なWebインフラとセキュリティ要件に合わせて再構成された形

WordPressプラグインのセキュリティ問題を解決

  • WordPressサイトの**セキュリティ問題の96%**はプラグインに起因
    • プラグインはPHPスクリプトとしてデータベースやファイルシステムへ直接アクセス
    • インストール時にほぼすべての権限が付与され、分離や権限制限がない
  • EmDashは各プラグインをDynamic Workerベースのサンドボックス環境で実行
    • プラグインは明示的な宣言(manifest)を通じて必要なcapabilitiesのみを要求
    • 例: read:content, email:send など必要な権限だけを付与
    • ネットワークアクセスも明示されたホストに限定
  • インストール前にプラグインが要求する権限を明確に確認でき、OAuthに似た透明な権限付与構造を提供
  • 管理者は権限要求を基準にインストールポリシーの自動化が可能

プラグインセキュリティとマーケットプレイス依存の解消

  • WordPress.orgはプラグインのセキュリティ問題のため手動レビュー手順を運用しており、待機キューは800件以上
    • GPLライセンスの制約により、コード再利用と商用化が制限
  • EmDashは2つの構造的改善を通じて市場ロックインを解消
    1. プラグインライセンスの自由化: EmDashとはコード共有がないため、開発者は望むライセンスを選択可能
    2. セキュアなサンドボックス実行: サイトはプラグインコードを直接見る必要がなくても信頼可能
  • プラグインは明示されたcapabilityのみを実行するため、セキュリティリスクを細かく評価可能
  • この構造は中央集権的なマーケットプレイスへの依存低減につながる
    • 信頼できるセキュリティモデルが確立されれば、開発者と利用者は自由にエコシステムを拡張できる

x402決済標準を内蔵 — コンテンツアクセスの有料化

  • EmDashはx402標準を標準サポートし、HTTP 402 Payment Requiredレスポンスによるオンデマンド課金が可能
    • ユーザーはサブスクリプションなしで**コンテンツ単位の課金(pay-per-use)**が可能
    • サイト運営者はウォレットアドレスと価格設定だけで収益化が可能
  • これはAIエージェントベースのWebトラフィック時代に合わせた新しいビジネスモデルを提供
  • すべてのEmDashサイトはAI時代に適した内蔵収益構造を備える

サーバーレス基盤の拡張性とコスト削減

  • WordPressはサーバープロビジョニングが必要なため、遊休リソースのコストが発生
  • EmDashはCloudflare workerdベースのv8 isolateアーキテクチャを活用
    • リクエスト時に即座にインスタンスを生成し、リクエストがなければ自動でscale-to-zero
    • CPU使用時間に対してのみ課金
  • Cloudflare for Platformsを通じて数百万インスタンスへの自動スケールが可能
  • 低コスト・高性能な構造により、大規模トラフィック処理と無料ティア提供に有利

Astroベースのモダンなテーマ構造

  • EmDashテーマはAstroプロジェクトとして構成され、以下の要素を含む
    • Pages: コンテンツレンダリング用ルート
    • Layouts: 共通HTML構造
    • Components: 再利用可能なUI要素
    • Styles: CSSまたはTailwind設定
    • Seedファイル: CMSが生成するコンテンツタイプの定義
  • AstroはLLMの学習データに含まれる人気フレームワークで、開発者に扱いやすい
  • WordPressテーマのfunctions.phpベース構造と異なり、EmDashテーマはデータベースにアクセス不可のためセキュリティを強化

AIネイティブCMS — MCP、CLI、Agent Skills

  • EmDashはAIエージェントが直接管理可能なCMSとして設計
    • 反復的なコンテンツ移行やフィールド変換作業を自動化
  • Agent Skills

    • EmDashインスタンスはAgent Skillsを内蔵し、プラグイン構造・フック・テーマ移植方法などをAIに提供
    • AIがEmDashコードベースを理解し、自動カスタマイズが可能
  • EmDash CLI

    • CLIを通じてコンテンツ検索、メディアアップロード、スキーマ生成などの管理機能を実行
    • ローカルおよびリモートのインスタンスをどちらも制御可能
  • 内蔵MCPサーバー

    • 各インスタンスは独自のModel Context Protocolサーバーを提供
    • 管理UIで可能なすべての操作をリモートで実行可能

パスキー認証とロール管理

  • EmDashはPasskey認証をデフォルトで使用
    • パスワード漏えいやブルートフォース攻撃を防止
  • 標準で**ロールベースアクセス制御(RBAC)**をサポート
    • 管理者、編集者、投稿者、寄稿者などロールごとに権限を区分
  • 認証はプラグイン方式で拡張可能で、SSOおよびIdPメタデータ連携をサポート

WordPressサイトの移行

  • 既存のWordPressサイトはWXRファイルのエクスポートまたはEmDash Exporterプラグインを通じて移行可能
    • ExporterプラグインはWordPress Application Passwordで保護された専用エンドポイントを生成
    • コンテンツとメディアを自動でEmDashライブラリへ移行
  • EmDashはスキーマベースのコンテンツ構造をサポート
    • WordPressのCustom Post TypeをEmDashの独立コレクションへ変換
  • Block Kit Agent Skillを通じてカスタムブロックをAIで生成可能

体験と参加

  • EmDashは現在v0.1.0プレビューバージョンとしてGitHubリポジトリからダウンロード可能
  • EmDash Playground で管理UIを直接体験可能
  • ローカルインストールコマンド: npm create emdash@latest
  • Cloudflareダッシュボードからもデプロイ可能
  • WordPressコミュニティ、ホスティングプラットフォーム、プラグイン・テーマ開発者からのフィードバックと貢献を歓迎

6件のコメント

 
xguru 27 일 전

私は個人ブログでWordPressを使っていたのですが、そのセキュリティ問題のせいで見切りをつけて静的サイトに移行した者です。
しばらく個人ブログをそのまま放置していたら、本当に妙なスパムが入り込んできて、ブログをスパムだらけにしていきました。タグを使って、自分のローカルには存在しないページをGoogleに登録するという奇妙な手口を使っていたんです。削除するのに今でも苦労しています……

 
lunamoth 26 일 전

私もウェブマスターツールで変なURLが検出されて不思議に思った記憶がありますが

「タグを使って自分のローカルにないページをGoogleに登録する奇妙な方法」というのは、どんな仕組みなのでしょうか??

これを遮断する方法はありますか?

 
nemorize 24 일 전

スパムっぽい文言を検索した検索結果URLを、他人のブログ記事に被リンクとして登録するタイプのスパムもありますね。
結局、どんなものでも手作業で消すしかないんですよね…。

 
xguru 26 일 전

通常は、ファイルアップロード関連の脆弱性があるプラグイン/テーマなどを悪用して侵入する手口です。
こうして侵入されると、本来のブログ運営者に気づかれないまま、tag/category などに内容を埋め込まれます。
実際にはブログのページ上ではまったく見えないので気づけないのですが、この URL が Googlebot にだけ見えるようにレンダリングする方式が使われます。(BabaYaga のようなものです。)

このように一度侵入されると、実際にはそのアドレスへの流入をすべて 410 Gone にする以外に方法がないんですよね。サーバー側では不要なアドレスはすべて 410 として返すようにしておいて、特定の流入パターンについては Search Console で手動で 6 か月間削除依頼を出し続ける必要があります。たとえば /tag で始まるものを全部消す、といった対応です。

私は 1 か月間ずっと削除申請をしていますが、まだ全部は消えていません。Google のインデックス処理がきちんと動いてほしいのですが、時間がかかりますね。

 
lunamoth 24 일 전

ああ、そうなんですね。教えてくださってありがとうございます。いろいろと気を配らないといけませんね

 
GN⁺ 28 일 전
Hacker Newsのコメント
  • WordPressを10年以上扱ってきたが、このプロジェクトは TypeScriptWorkerプラグイン の2点を完璧に押さえていると思う
    最近WPのセキュリティ問題をかなり考えていたが、悪意あるプラグインがDBや環境変数にアクセスしたり、XSSを引き起こしたりできる。しかし、適切に設計されたプラグインシステムならこれを緩和できる
    個人的に HotsauceCMS を開発中。NodeJSやDenoのWorkerプラグインを選択的に使い、ファーストパーティプラグインは高速なインプロセス実行、サードパーティはワーカーで分離実行できるようにしている
    依存関係は4つだけで、推移的依存関係は0。Dependabotの警告npmサプライチェーン攻撃 にうんざりしたからだ
    Drizzleベースのスキーマファースト構造で、DB構造を完全に制御でき、ファイルアップロードのような機能もスキーマヒントで定義する
    DB非依存なので、Postgres、MySQL、SQLiteなどDrizzleがサポートするすべてのDBで動作する
    フロントエンドは自由に選べ、個人的にはReactなしのJSXを好んでいる
    フィードバック歓迎。何か見落としている点があるか、方向性が合っているか気になる。EmDashの今後の展開にも期待している

    • なぜ TypeScript がそこまで重要だと考えるのか説明してほしい
    • 以前はWordPressをよく使っていたが、当時はFTPでそのままアップロードして動く 導入の手軽さ が魅力だった。CLIやビルドツールは不要だった。ただ、セキュリティは常に問題で、ハッキングが絶えなかった
    • 関連する 以前の議論へのリンク を共有する
  • EmDashはWordPressの精神的後継だというが、自分はCMSが向かうべき方向はその逆だと思う
    むしろ単純化して 静的ファイルベースのWebサイト に戻るべきだ。キャッシュもしやすく、高速で、管理も簡単だ
    もちろんCloudflareとしては、自社の Workers製品 を売るためにこうした構造を選んだのだろう。本当に根本的なセキュリティ問題を解決したのかはまだ疑問だ

    • 自分も静的サイトは好きだが、顧客はしばしば 動的コンテンツ を求める。最初はシンプルなサイトを望んでいても、後からフォーム、在庫、予約機能を追加したがる。だからプラグイン中心の構造は理解できる
    • 非開発者の顧客は、UIから自分で修正できることを好む。WordPressは 複雑で肥大化したUI すぎて、結局ほとんどが開発者に差し戻される。最小限のUIで必要な部分だけ修正できるのが理想だ
    • Astroを使うなら、基本的には静的サイトジェネレーターだ。必要なときにReactコンポーネントを追加でき、プラグインも選択的に使える
    • 静的ファイルをキャッシュしやすい場所にホスティングしたいなら、Cloudflare はすでにそういうサービスを提供している
    • Astroは静的HTMLを出力するので、その点では問題なさそうだ
  • Cloudflareは間違った方向からアプローチしていると思う
    WordPressが成功した理由は 導入のしやすさとネットワーク効果 にある。セキュリティ以上に、すでにWPに慣れた開発者が多いからだ
    EmDashが成功するには、WixやSquarespaceより 簡単で、速く、柔軟 でなければならない。そうでなければネットワーク効果を生み出しにくい

    • WordPressにはすでに熟練した人材が多く、EmDashはまだ始まったばかりだ。それでも成長するなら応援したい
  • WordPress開発者として最大の苦痛は プラグインアーキテクチャ だった。
    WPではプラグインを画像と同じ wp-content フォルダに入れるため、CI/CDが悪夢になる。EmDashはプラグインがTSモジュールなので、はるかにすっきりしている

    • WPには stagingの概念 がなく、変更を本番に移すには手作業でやり直さなければならない
  • Cloudflareの x402決済標準 の概念は興味深い
    エージェントが自動で少額決済を送り、コンテンツへのアクセス権を得る仕組みだが、少し怖くもあり未来的でもある
    冗談半分で、アクセスごとに10セント要求する HTTP 402ハニーポット を作れば、昔の「1ピクセル1ドル」アイデアの再来かもしれない

    • もしエージェントをだまして支払い続けさせられるなら、無限リダイレクトやゴミコンテンツで金を稼ぐこともできるかもしれない
    • HTTP 402ドキュメント を参照
    • 映画 Office Space少額横領ハッキング が合法化された感じだ
  • WordPressの価値はコードではなく エコシステムとサポート体制 にある
    コード品質は今ひとつだが、あらゆるSaaSがWPコネクタを提供している。
    EmDashが成功するには、非開発者でもFiverrで簡単にカスタマイズを依頼できる必要がある。それは技術ではなく 労働市場の問題

    • Cloudflareは エイプリルフールの冗談 をやらない。1.1.1.1も4月1日に公開されたが、今では主要なDNSサービスだ
    • 実際のプロジェクトであることを確認した
    • WordPressの「オープンソース」に関する .com vs .org論争 も参考になる
    • 古い代替案として Textpattern もある
  • Cloudflare製のWordPress後継という点は魅力的だが、Dynamic Workers ベースのプラグイン分離はCloudflareランタイムでしか動かない
    他のホストでは単なるTS製CMSに過ぎず、アーキテクチャ依存性 が問題だ

    • 結局のところCloudflareインフラに依存したOSSという点で、採用は難しい
    • ただし Workerd はオープンソースなのでセルフホストも可能だ
    • 他のランタイムがこの機能を複製する可能性もある
    • Cloudflareは人気OSSを 自社インフラ専用の代替品 に変える戦略を取っているように見える
  • なぜ今なお JavaScript でAIプロジェクトを作るのか疑問だ
    今ではGoのような コンパイル言語 でも素早くアプリを作れる。より小さく、速く、デプロイも簡単だ
    JSはインタプリタ型なので遅く複雑だ。昔は即時実行が利点だったが、今ではコンパイルも速い

    • 「JSは本当の言語ではない」というのは言い過ぎだ。インタプリタ言語を使う理由は今でも多い
    • JSは Webフロントエンド、バックエンド、モバイル、デスクトップ をすべてまたげる唯一の言語だ。tRPCのようなツールで エンドツーエンドの型安全性 も確保できる
    • ほとんどの開発者がJS/TSに慣れており、コミュニティも最大級だ。エコシステムが巨大なので、わざわざ変える理由がない
    • Goは JSON処理やテンプレート作業 で不便だ。型システムの柔軟性が低く、フロントエンド開発には制約が多い
    • LLMはTSをうまく使え、TSはJSの欠点をかなり改善した。高速なランタイムと簡単なデプロイのおかげで、今でも魅力的だ
  • EmDashがWordPressのコードを使っていないため MITライセンス で配布される点は興味深い
    ただ、最近登場した Cleanroom as a ServiceMalus を思い出す。タイミングが妙に重なる

    • Malusは実は 風刺プロジェクト