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

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

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

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

5399閲覧

店舗詳細ページのURLにUUIDを表示することの是非について

cooper46

総合スコア7

MySQL

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2021/10/27 09:34

食べログやホットペッパービューティーのような、あるカテゴリの専門店を集めたWebサービスを作成します。
DBには以下のような形で店舗データが格納されています。

idnameaddress
e949af9a-43df-6de7-16f7-8ac9fa4f3853店舗foo渋谷区道玄坂10-10-10
2ed7ca8a-dd92-0f40-8190-a22daee9e4e9店舗bar豊島区千川100-50-1

この場合、店舗の詳細情報を載せるページのURLには以下のように店舗のIDを含ませて良いのでしょうか?
https://example.com/shop_list/e949af9a-43df-6de7-16f7-8ac9fa4f3853

それとも、例えば以下のように一般的に公開されることを想定した仮のIDなどを別途発行し、そちらを使用するべきでしょうか。
https://example.com/shop_list/shop30001
|id|name|address|id_alias|
|:--|:--|:--|id_alias|
|e949af9a-43df-6de7-16f7-8ac9fa4f3853|店舗foo|渋谷区道玄坂10-10-10|shop30001|
|2ed7ca8a-dd92-0f40-8190-a22daee9e4e9|店舗bar|豊島区千川100-50-1|shop30002|

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

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

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

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

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

guest

回答1

0

ベストアンサー

不安になる気持ちは分からなくは無いですが、要件を定義せずになんとなく考えても答えは出ません。

例えば、ざっくりとメリットとデメリットを考えた場合

  • SEOの観点で言えばおそらくは問題無い
  • ユーザーがURLを覚えられる事やURL自体を露出する使い方をを期待するのであれば、エイリアスは欲しい(その場合、最終的にはもっと短いパスになるようにするべき)
  • エイリアスを採用した場合はその管理(特に変更や他店舗での再利用に関する問題)には慎重な要件定義と設計、運用コストが発生する

などが考えられますが、システムとして致命的な問題が発生しない限りはこれらの価値判断はシステム設計以前に定義された要件を基準にして行うしかありません。

まずは、URL設計とその設計の基準となる要件を整理するところから始めてみる事をお勧めします。

コメントを受けての追記

https://teratail.com/questions/364664
とその回答がとても参考になります

投稿2021/10/27 14:41

編集2021/10/27 15:25
tanat

総合スコア18727

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

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

cooper46

2021/10/27 15:03

ご回答ありがとうございます。 質問の内容が不足していましたが、UXやSEOの観点は全く考慮せず、純粋にアプリケーションの脆弱性から見てどうなのか疑問になりました。 例えばReadに関してのみエイリアスIDを使用し、UpdateやDeleteに関しては店舗情報を更新できるユーザーにのみ開示される真のIDを用いることでよりセキュアなつくりにするようなテクニックがあるのかなと、ふと疑問に思った次第です。 もちろんIDがわかってしまっただけで不正に操作されてしまうような状況がそもそもナシであるということではありますが…。
tanat

2021/10/27 15:22 編集

それもセキュリティ要件をどこに設定するか次第かなと思いますよ。 https://teratail.com/questions/364664 の質問への ockeghemさんの回答とそのコメントが核心を突いていると思います。
cooper46

2021/10/27 21:02

参考URLが非常にわかりやすく、とても納得しました。 バックエンドの実装に対する理解が薄く、要件云々以前に感覚として気になっていたところだったので、スッキリしました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問