質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

意見交換

クローズ

2回答

427閲覧

MYSQLのテーブルのキーに関して

jacky-tom

総合スコア4

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2023/06/08 08:16

0

0

テーマ、知りたいこと

AUTO_INCREMENTはセキュリティ上問題になることもある?

背景、状況

就職活動に使うポートフォリオとして、サイトを作成しています。
その中で、管理者用のユーザー管理システムを作ってる最中です。
最初は、テーブルのキーをIDとして、AUTO_INCREMENTを利用してましたが、ある書籍を
読んだところ、画面に渡すGETパラメータとして利用する場合、URLで見えてしまうため、
推測されやすいのが問題になるかもしれないとの事です。
<例>http://example.com/show-profile.php?id=2
(末尾のID=2の部分です。)
そこで、調査したところ、ID生成方法にUUIDという方式があることを知りましたが、
大量データになるとパフォーマンスが劣化するとのことで、それを解決するのが、
ULIDということを知りました。
<参考>
https://zenn.dev/j5ik2o/articles/a085ab3e3d0f197f6559
しかしながら、Google検索でULIDとしても情報が少なく、やってみるのが少し怖いです。
(その前に手順も見つかりません。)
通常、AUTO_INCREMENTでもそれほど問題にならないものでしょうか。
意見をお聞かせください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答2

#1

yambejp

総合スコア116720

投稿2023/06/08 08:33

AUTO_INCREMENTはテーブルのレコードをユニークに特定するときに便利な機能ですからセキュリティに関してはまったく考慮する必要はありません。逆にIDを複雑化したからといってセキュリティが堅牢になることはありませんしIDを特定されたからといって問題はありません。

ログイン時にauto_incrementで発行されたIDを指定することはあまりないでしょう。任意に設定されたユーザー名とポスワードでログインさせてください

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

maisumakun

総合スコア146018

投稿2023/06/08 12:02

画面に渡すGETパラメータとして利用する場合、URLで見えてしまうため、
推測されやすいのが問題になるかもしれないとの事です。

具体的に、何が問題なのでしょうか。

  • もともと誰でも見られるページなら、なんの問題もありません。
  • 人によって見られるかが違うページの場合、URLを隠すことで対応するのではなく、きちんと権限制御を組み込んでください。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問