$open /security/
セキュリティ
お客様のサイト・ソースコード・秘密情報を守るために、200stack が行っていることをまとめました。
ログイン
- パスワードを使いません。メールで届くログインリンクか 6 桁の確認コードでログインします。
- ログインのリンクとコードは 1 回しか使えません。コードの入力は 5 回までです。
- リンクとコードはハッシュにして保存し、平文では持ちません。
- ログインメールの送信回数は、メールアドレスごと・接続元ごとに上限を設けています。
- ログイン状態は 2 週間ほど使わなければ切れます。Cookie は JavaScript から読めない設定(HttpOnly)です。
権限と記録
- プロジェクトのメンバーは「管理者」「開発者」「閲覧者」の 3 段階です。メンバーの権限変更・削除やプロジェクトの削除は管理者だけができます。
- 非公開にしたサイトは、表示する前に閲覧権限を確かめます。
- メンバーの招待・参加、オーナーの移譲、外部サービスとの連携などの操作は、誰がいつ行ったかを記録しています。
ビルド
- ビルドは 1 回ごとに専用のコンテナで動かします。他のお客様のビルドと同じコンテナは使いません。
- ビルドのコマンドは管理者権限(root)ではなく、権限を絞った専用のユーザーで動かします。
- 依存パッケージのキャッシュはプロジェクト・アプリごとに分け、他のお客様と共有しません。
- シークレットの値(4 文字以上)は、ビルドログに出る前に伏せ字にします。
GitHub 連携
- GitHub App で連携し、短時間だけ有効なアクセストークンを使います。
- ビルドでソースを取得するときのトークンは、ビルドするリポジトリ 1 つの読み取りだけに絞ります。
- GitHub からの通知は署名を確かめてから受け付けます。
環境変数・シークレット
- 環境変数は既定でシークレットとして扱います。
- シークレットの値は暗号化(AES-256-GCM)して保存し、保存後は画面に表示しません。
- シークレットはビルドを管理するプロセスの環境変数には置かず、パッケージマネージャーの確認・インストール・ビルドで動かすコマンドに渡します。
お支払い
- お支払いは Stripe の画面で行います。カード番号を 200stack のサーバーで受け取ったり保存したりはしません。
- Stripe からの通知は署名を確かめてから処理します。
配信とインフラ
- サイトは Cloudflare のネットワークから配信し、DDoS 攻撃への防御を受けています。
- 独自ドメインの SSL 証明書は自動で発行・更新します。
- 管理画面は Google Cloud の東京リージョンで動いています。
脆弱性を見つけたら
200stack の脆弱性に気づいた方は、お問い合わせフォームからお知らせください。内容を確認し、対応します。確認のため、他の利用者のデータへのアクセスやサービスを止める操作は行わないでください。
お問い合わせ