同意なしにスキャンしません

詳細マニュアル

この窓口は同意を証明したうえで公開中の Web アプリを点検します。以下はリクエストから点検証明書までの全手順です。

マニュアル · 目次

1. 点検を依頼

点検する Web アプリのドメインと結果を受け取るメールを入力し、「点検を依頼」を押します。その依頼だけに紐づく固有トークンが発行されます。この時点ではまだ何もスキャンしません。

2. 管理権の証明(肝心な手順)

発行トークンをドメインに置いて所有を証明します。どちらか一方でかまいません。そこに置けること自体が証明です。

A

方法 A · ファイル

画面の「コピー」ボタンでトークンをコピーします。

ドメインのルートに /.well-known/star365-audit-consent.txt を作成し、中身にトークンだけを入れます。

ブラウザでその URL を開いてトークンがそのまま見えれば準備完了です。

B

方法 B · DNS TXT

DNS タブで「コピー」ボタンからレコード 1 行をコピーします。

DNS 設定に TXT レコードとして追加します: 名前 star365-audit-consent、値はトークン。

DNS の反映には数分〜数十分かかることがあります。反映後に確認してください。

C

方法 C · meta タグ

静的ホスティングでファイルパスを置けない場合や、存在しないアドレスにも 200 を返す(soft-404)サイトではこの方法を使ってください。meta タブからタグをコピーし、ホームページ HTML の <head> 内に入れます。

タグはサーバーが返す HTML に含まれている必要があります — 後から JS で入れたタグは見えません。また <head> の外(本文)にあるタグは認めません: 投稿をそのまま描画するサイトでは、他人がタグを仕込んで同意を偽造できるからです。

任意の 2 行 — 同意ファイル(または TXT・meta の値)に一緒に書きます。contact=you@example.com: ドメイン外のアドレス(Gmail など)で点検証明書のメールを受け取るのに必要です(申込時にメールを入力すると最初から入っています)。badge=on: 点検バッジを公開します(既定はオフ)。
🔴 スキャン直前にもう一度同意を検証します。その間にトークンを消せば(撤回)点検しません。

3. 検証後に点検を実行

「同意を確認する」を押すと、サーバーがトークンの場所を読んで検証します。verified になるとそのドメインだけが許可リストに入り、点検キューに入ります。外部点検は読み取り専用 GET のみ — インジェクション・総当たり・過負荷なし。 例外が 1 つだけあります。点検対象のバンドルに Supabase プロジェクトの URL(*.supabase.co)と anon キーがある場合、そのプロジェクトのホスト 1 か所に読み取り専用の GET を送り、RLS が有効かを確認します。バンドルがすでに呼んでいるテーブル名のみ、テーブルごとに 1 件で、行の値は読み取りも保存もしません。

4. 点検証明書を読む

点検が終わると点検証明書をメールで受け取ります。各項目の判定は三値のいずれかで(失敗は深刻度を併記)、改ざん検知可能なハッシュチェーンで残ります:

合格 合格 — その項目で問題は見つからず。
失敗 失敗 — 問題を検出。深刻度が付きます: 注意(直したほうがよい、例: セキュリティヘッダ未設定)または危険(直ちに対処、例: 露出鍵・漏れた DB 接続情報)。
確認不可 確認不可 — 読めなかった項目。合格に見せかけずそのまま表記します。

何を点検するか

外部点検(同意のみ)

外部から GET で観測できる 20 項目: 到達性・ブラウザバンドルに載ったシークレット・開いた機微パス(.env・.git など 27 種)・セキュリティヘッダ。さらに実際にブラウザで開かないと出てこないもの — JS コンソールのエラー、自分の資源が 4xx・5xx で壊れている、HTTPS ページが http:// 資源を呼ぶ(mixed content)、白画面のまま公開されていないか、390px のモバイルで横にはみ出さないか、切れている内部リンク。ブラウザはGET しか出しません — ページが POST を投げても、私たちを通じては出ていきません。外から見えないものは「確認不可」として残します。 Supabase を使うアプリでは RLS も確認します(バンドルに anon キーがある場合)。

内部点検 · SSH(別途依頼時)

明示的な依頼とアクセス権がある場合のみ: ファイル権限、DB 露出・ファイアウォール、プロセス権限、依存関係の脆弱性。見つかった秘密値は指紋だけ残し原本は保存しません。

安全とプライバシー

同意を証明したドメインのみ点検します。結果はあなただけに渡し、どこにも公開しません。資金・決済手段は受け取らず、寄付はウォレットへ直接です。

点検バッジ(任意)

点検が終わると、サイトに「star365 点検済み」バッジを付けられます。バッジはあなたがオンにしたときだけ表示されます — 同意ファイル(または TXT レコード)にトークンと一緒に badge=on の 1 行を書いてください。オンにしない限りバッジの URL は 404 で、点検を受けた事実すら表に出ません。実際の点検証明書があるドメインだけにバッジが出て(偽造不可)、失敗件数は公開しません。下のコードのドメインだけをご自身のものに置き換えてください:

<a href="https://audit.star365.site/?ref=badge"><img src="https://audit.star365.site/badge/YOUR-DOMAIN.svg" alt="Security audited by star365"></a>

CI でデプロイごとに点検

最初の一度だけ人が行います: 下のコマンドが同意ファイルの内容と点検証明書キーを出力します。ファイル内容(末尾の standing=on 行を含む)をサイトに置き、出力された NONCE・RECEIPT_KEY を CI のシークレットに保存してください。

curl -fsSLO https://audit.star365.site/ci/star365-audit.sh && bash star365-audit.sh request YOUR-DOMAIN you@example.com

あとはデプロイのパイプラインに 1 ステップ加えるだけです(GitHub Actions の例 — action.yml と star365-audit.sh をリポジトリに一緒に置きます。他の CI では bash star365-audit.sh rescan):

- uses: ./.github/actions/star365-audit   # action.yml + star365-audit.sh
  with:
    nonce: ${{ secrets.STAR365_NONCE }}
    receipt-key: ${{ secrets.STAR365_RECEIPT_KEY }}
    fail-on: crit

終了コード: 0 合格 · 1 失敗(既定は「危険」のみ失敗、fail-on: warn なら「注意」も)· 2 判定不可(待機タイムアウト・同意なし)。同じドメインは 1 時間に 1 回までです。繰り返し点検をやめるには同意ファイルから standing=on 行を消してください — 次のリクエストから拒否されます。

トラブルシューティング

「トークンが見つかりません」と出る

ファイル URL が正確か(誤字・大文字小文字)、中身がトークンだけか確認してください。DNS の場合は反映を待ってから再度「同意を確認」を押します。

「確認不可」は失敗ですか?

いいえ。その項目を読めなかったという意味で、合格に見せかけず正直に伝えます。必要ならソース位置や SSH 内部点検で確認できます。

点検はいつ実行されますか?

同意が verified になると自動キューに入り、まもなく実行され、完了後に点検証明書をメールします。

費用

外部点検は無料です。SSH 内部点検・定期監視は範囲に応じて相談のうえ進めます。役立ったら任意の(非カストディ)寄付を歓迎します。

← ホーム / 点検を依頼