やりたいこと
URLにid
を使っていると、値を変更して他のユーザの情報が見れたり、データ数の推測ができてしまう。これを避けたい。
https:example.com/user/1/hoge
ではなく、
https:example.com/user/76a049b8-d280-49e8-917f-d7b28107c660/hoge
というようなuuid
を使いたい。
動作環境
- AWS RDS for PostgreSQL10
- Rails5.2
事前準備
- RDSにて
pgcrypto
を生成する
CREATE EXTENSION pgcrypto;
- 以下のようなストアドができればOK
実装
application.rb
に以下を追加する
config.generators.orm = [:active_record, primary_key_type: :uuid]
データ登録
seed
などでデータ登録を行えば、uuidに値が入る。