Skip to content

Instantly share code, notes, and snippets.

View kobitoDevelopment's full-sized avatar

I_AM_NOT_SPAM kobitoDevelopment

View GitHub Profile

サブスク決済 設計チェックリスト

契約開始後に請求を繰り返す機能の設計・実装・レビューで使用する。 各項目に実装内容、保存先、判定条件またはテスト結果を記入する。 対象外の項目には、対象外と判断した理由を記入する。

0. 使い方

各項目へ次の優先度を付ける。

<button class="share-button" type="button" data-open-share>共有する</button>

本番DB変更手順メモ

前提

  • Webアプリケーション開発における本番DB変更を対象とする。
  • 作業は一人で実施する。担当者決定、承認者決定、監視担当者決定、会議体調整は扱わない。
  • 対象はスキーマ変更、データ変更、スキーマ変更とアプリケーション変更が同時に必要な作業。
  • SQL、マイグレーション、確認クエリ、ロールバッククエリ、実行ログを作業単位で保存する。
  • DBMS固有のコマンド名はこのメモでは固定しない。採用DBの公式マニュアルで該当構文、ロック、トランザクション、バックアップ、リストアを確認する。
  • 本番DBで最初に実行する作業を作らない。ステージング、複製環境、ローカル再現環境、本番トランザクション内検証の順で実行前確認を増やす。

JWT認証フロー(推奨構成)

  1. ユーザーがログインする

  2. サーバが短寿命 access token を発行する
    理由:

    • 漏洩時の悪用時間を短縮するため
      (token窃取後の攻撃継続時間を制限できるため)

    NG例:

JWT認証フロー(推奨構成)

  1. ユーザーがログインする

  2. サーバが短寿命 access token を発行する
    理由:

    • 漏洩時の悪用時間を短縮するため
      (token窃取後の攻撃継続時間を制限できるため)

    NG例:

HTTPSサイト公開直後のbotによる大量アクセスの原因と対策

1. 状況と発生事象

1.1 発生する状況

状況 発生事象
HTTPS通信用のTLS証明書(慣例的に「SSL証明書」と呼称)を発行する 証明書情報がCertificate Transparency Log(CT Log)に登録される
CT Logに登録される 第三者が誰でも検索・取得可能な状態になる
@property --p {
syntax: "<length>";
initial-value: 0px;
inherits: true;
}
.box {
--r: 20px; /* ボックスの角丸 */
--b: 6px; /* ボーダーの幅 */
--c: #adadad; /* ボーダーのカラー */

"use server" に関する備忘録

基本動作

  • "use server" を付けた関数(Server Action)は、実装コードはサーバー側にのみ存在し、クライアントバンドルには含まれない。
  • Next.js は自動でエンドポイントを生成し、クライアントから POST リクエストで呼び出せる状態になる。
  • 結果として、認証されていないユーザーを含め、誰でもそのエンドポイントを呼び出せる。

セキュリティ上の扱い

バックエンドエンジニアリング基礎領域マップ

実務で着手する順に構成。


1. Linuxとシェルの基礎

すべての土台。クラウド環境の問題も、実態はLinuxレベルの問題であることが多い。

<!-- ==========================================================
Speculation Rules API テンプレート
構成: prefetch + prerender + 副作用URL除外 + セレクター除外
※ type="speculationrules" の中身はJSONとしてパースされるためコメントを含められない。HTML側で補足する
※ 配置: head内またはbody内。JSとして実行されないため他のscriptとの順序は無関係
※ 無効化条件:
Save-Dataヘッダー有効時
省エネモード かつ バッテリー残量低下時
メモリ不足時
========================================================== -->