セキュリティ
設定 > セキュリティでは、サイトのセキュリティ上の問題を調べ、修正できます。パッケージスキャン、コードスキャン、AI セキュリティレビューの3種類のスキャンを実行します。重大な問題がある場合は、設定のサイドバーにあるセキュリティの横に、赤い数字で件数が表示されます。
上部には、修正が必要な問題の件数と、サイトを最後にチェックした日時が表示されます。再チェックするには、今すぐ確認をクリックします。その下には、次の項目があります。
- AI レビュー:AI がチャットで行う、より詳しいレビューです。レビューを開始をクリックします。クレジットを使用します。
- 自動チェック:無料のパッケージスキャンとコードスキャン、および前回の実行日時です。
- コード内の問題:コードスキャンで見つかった問題が、深刻なものから順に表示されます。
- パッケージ:既知の問題がある各パッケージについて、インストール済みのバージョン、修正済みのバージョン、公開中のサイトのバージョンが表示されます。リストをダウンロードでファイルに保存できます。
- 自動セキュリティ更新、重大な問題をメールで知らせる、重大な問題が未解決の間は公開をブロック。
パッケージスキャン
サイトは、動作の基盤となるフレームワークなどのオープンソースパッケージで構築されています。パッケージスキャンは、サイトで使われているすべてのパッケージを、既知のセキュリティ上の問題を集めた npm のアドバイザリデータベースと照合します。
次のタイミングで自動実行されます。
- 利用中および公開済みのサイトに対して毎日
- AI による構築後
- 公開するたびに、公開内容を反映して実行
コードスキャン
コードスキャンは無料で、公開するたびに実行されます。セキュリティタブから、いつでも実行できます。サイトのデータ流出につながりやすい、次のような実装上の問題を調べます。
- ブラウザー側のコードに含まれる秘密鍵。 ブラウザーが読み込むものは、サイトを開いた誰もが読めます。
- 公開用の名前に設定されたシークレット。 名前が
NEXT_PUBLIC_で始まるシークレットはブラウザーに渡されます。秘密鍵には、この接頭辞のない名前を使ってください。公開される値を参照してください。 - ブラウザー側のコードに含まれるサービスキー。 サービスキーはデータベースのアクセスルールを迂回するため、サーバー側のコードでのみ使用してください。
- 行レベルセキュリティのないテーブル。 これがないと、誰でもそのテーブルの行を読み取ったり変更したりできる可能性があります。
- 保護されていないジョブのルート。 スケジューラー以外の誰でも呼び出せるルートを持つ、スケジュール済みジョブです。
- 安全でない HTML の表示。 加工していない HTML を表示すると、第三者がページ上で独自のスクリプトを実行できる場合があります。
- リスクのある画像設定。 サイトに必要な範囲を超えて許可している画像設定です。
AI セキュリティレビュー
AI セキュリティレビューは、レビューを開始で開始するとチャット内で実行され、通常のメッセージと同様にクレジットを使用します。AI はサイトのすべてのコードを読み、データベースが接続されている場合はそのアクセスルールも確認して、サイトの仕組みに応じた問題を探します。
- 誰が何を読み取ったり変更したりできるか
- ログイン確認が必要なページや操作
- 決済
- 訪問者の入力がコードやデータベースクエリとして扱われるインジェクション
- 本来見るべきでない人に表示されるデータ
見つかった問題は深刻なものから順に一覧表示され、変更を加える前に確認を求めます。レビュー結果はチャットに残ります。
検出結果の確認
各検出結果には、問題の内容、場所、重大度が表示されます。重大度は重大、高、中、低の4段階です。重大度の高い順に並ぶので、上から確認してください。
パッケージの検出結果には、パッケージ名、影響を受けるバージョン、アドバイザリが表示されます。アドバイザリを開くと、全文を読めます。コードスキャンの検出結果にはファイル名と行番号が表示され、AI で修正で変更を適用できます。AI ですべて修正では、コード内のすべての問題をまとめて修正できます。
問題を対応対象から外すには、閉じるをクリックし、理由としてこのサイトでは意図したものです、リスクを理解しました、誤りです、修正が提供されるまでのいずれかを選びます。任意でメモも追加できます。閉じた問題はリストから除外されます。閉じた問題を表示で再表示でき、復元でリストに戻せます。
すべてのリスクを検出できるスキャンはありません。問題なしという結果は、これらのチェックで問題が見つからなかったことを意味するだけで、サイトに問題がないことを保証するものではありません。ログイン、決済、ユーザーのデータを扱う機能は、実際に使う前にテストしてください。
検出された問題の修正
- パッケージの更新。 修正済みバージョンが公開されたら、更新をクリックして下書きに適用し、その後公開して本番サイトに反映します。同じメジャーバージョン内の修正では、サイトの動作は変わりません。
- AI で修正。 検出結果のAI で修正をクリックすると、AI が提案された修正を適用します。変更はバージョン履歴に保存されるため、元に戻せます。
新しいメジャーバージョンへの更新やコードの変更など、バージョンの小幅な更新だけでは解決しない問題は、自動では適用されません。ワンクリックで修正できるように表示されるので、適用するタイミングは自分で決められます。
自動セキュリティ更新
サイトで使用しているパッケージに重大な脆弱性があり、同じメジャーバージョン内で修正できる場合、WebTwizz が公開中のサイトを自動で更新します。
- 変更されるのはパッケージのバージョンだけです。サイト独自のコードには一切変更を加えません。
- WebTwizz は、サイトの公開済みバージョンを再ビルドします。未完成の下書きが公開されることはありません。
- 再ビルドに失敗した場合は、現在のバージョンがそのまま公開されます。
- バージョン履歴に、元に戻すための復元ポイントが保存されます。更新を取り消すには、更新前のバージョンを復元してください。
- プロジェクトを GitHub と同期している場合、更新はコミットとして GitHub にプッシュされます。
- 変更内容をお知らせするメールが届きます。
サイトの実行環境である Node.js にセキュリティ修正が入った場合も、WebTwizz は公開済みのサイトを再ビルドします。サイト自体は変更されず、更新は自動で対応に表示されます。
新しいサイトでは、自動更新がデフォルトでオンになっています。自動更新機能の導入前に作成されたサイトでは、オフになっています。サイトの設定を変更するには、設定 > セキュリティを開き、自動セキュリティ更新をオンまたはオフにします。問題が実際に悪用されている場合は、設定にかかわらず WebTwizz が更新を適用したり、修正が完了するまでサイトを一時的に非公開にしたりすることがあります。
メール通知
- 重大な問題。 公開中のサイトで新たに重大な問題が見つかると、アカウントのメールアドレスに通知が届きます。デフォルトでオンになっています。通知を停止するには、設定 > セキュリティで重大な問題をメールで知らせるをオフにします。
- 重大度が高の問題。 週1回のメールで通知されます。
公開時のチェック
公開するたびに、パッケージスキャンとコードスキャンが実行されます。未解決の重大な問題は、公開パネルのセキュリティ行に表示されます。
既知の重大な問題がある状態でサイトが公開されないようにするには、設定 > セキュリティで重大な問題が未解決の間は公開をブロックをオンにします。すべての重大な問題を修正するか閉じるまで、公開は保留されます。デフォルトではオフになっています。
WebTwizz が対応する範囲
次の項目は、設定不要で安全かつ最新の状態に保たれます。
- スターターとテンプレート。 すべての新しいサイトの基盤となるスターターと、ギャラリー内のすべてのテンプレートです。
- プレビュー。 各サイトのプレビューは、それぞれ独立した仮想マシンで動作します。
- ホスティング。 webtwizz.app のアドレスと独自ドメインで公開するサイトに、HTTPS を提供します。
- シークレット。 暗号化して保存されます。入力するのは WebTwizz 上だけにしてください。AI アシスタントとのチャットには入力しないでください。シークレットを参照してください。
- パスワード保護されたサイトと非公開サイト。 サイトが読み込まれる前に、アクセス権が確認されます。公開範囲を参照してください。
セキュリティ上の問題の報告
WebTwizz または WebTwizz でホストされているサイトでセキュリティ上の問題を見つけた場合は、security@webtwizz.com にメールしてください。報告に含める情報と過去のアドバイザリについては、webtwizz.com/securityをご覧ください。