Zenn Dev Easy Easy Articles 8a92c47f0b3d51
エンジニア達の「完全に理解した」Talk #73 イベントレポート
- URL: https://zenn.dev/easy_easy/articles/8a92c47f0b3d51
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: 第73回イベントレポートで、2026年1月開催。SMTPはデフォルトで認証機能を持たないためなりすましが可能という構造的課題があり、ESMTPとSMTP-AUTHによる認証拡張の仕組みがターミナルからのライブデモを交えて解説された。Web Serial APIについては、ブラウザからハードウェアとシリアル通信できる仕組みとしてChromiumが対応する一方FirefoxとSafariがセキュリティ上の理由からあえて非対応にしているという設計思想の違いが紹介され、APIの二重ループ構造をRxJSでラップした自作npmパッケージ @gurezo/web-serial-rxjs の公開も報告された。Raspberry Pi Zeroにブラウザからシリアル通信してLinuxコマンドを実行するライブデモも実施された。
詳細
LT1: SMTPとESMTPの認証構造
- SMTP(Simple Mail Transfer Protocol): インターネット黎明期からのプロトコル、デフォルトで認証機能なし → なりすまし送信が可能
- ESMTP(Extended SMTP): 拡張版、SMTP-AUTHで送信元の正当性を検証できるように
- ライブデモ: ターミナルからGmailのSMTPサーバーに接続し、Base64エンコードした認証情報を
AUTH LOGINコマンドで送信 - 背景: 業務でGoからSendGridに接続する処理を読んだことがきっかけ
LT2: Web Serial APIとRxJSラッパーの自作
- Web Serial API: ブラウザから直接ハードウェアとシリアル通信できる
- ブラウザ対応状況の思想差異:
- Chrome(Chromium系): 利便性重視で対応
- Firefox / Safari: ハッキング・悪用のセキュリティ懸念からあえて非対応
- APIの構造的課題: 読み書きそれぞれにwhileループを持つ二重ループ構造で実装が複雑
- 解決策: RxJSでAPIをラップし、Observableベースで簡潔に記述できるnpmパッケージ
@gurezo/web-serial-rxjsを自作・公開 - ライブデモ: Raspberry Pi Zeroにブラウザからシリアル通信し、Linuxコマンドを実行して応答を受信