URLにIDを入れてしまうことの是非

今回、webサービスを開発する際にサーバ側もフレームワークを使わず1から作ることに。そこで一つ考えたことが、「URLにIDのような、内部的な値を使ってしまっていいのか」ということ。

色々考えたり調べた結果をまとめたいと思います。
※あくまで一個人の意見です。何かあっても責任は負いません。これが最適解もしくは唯一解と言う気もありません。

概要

各テーブルにIDを持ったとして、そのIDをURLにしてアクセスしたり操作したり。。と言うのが良いのかどうか。

例:service.com/user/?id=1234abc

不安になりそうなポイントとしては「IDがバレることで不正な操作が可能になってしまうのでは?」というところ。

  • 他人のidを指定して他人の登録情報を編集、削除する
  • リクエストを他人のidで実行したかのように見せかける

その他いろいろリスクは思い付きます。

考察

まず、ここで前提とするべきなのは、「id等の情報は基本バレる」ということ。
じゃあどのようにシステムを守るのでしょう?

大事なのは操作に対する「権限」を意識することです。

概要で挙げたような攻撃は、シンプルなログイン処理を実装しただけでは防ぐことはできません。ログインした時点で、各APIやformの処理は正常な操作として通ってしまうので、一般的なstateパターンでも防ぐことができなくなってしまいます。

そのため、ログインしたユーザにその処理を行う権限があるかどうかを確認する必要があります。

ユーザ情報を編集できるのは普通その本人だけですよね。user/edit/?id=1234 というパスでユーザ情報を編集したとして、その処理を行った現在のログインユーザのidが違うのなら弾くという処理が必要になってきます。

まとめ

個人的には、「セキュリティのポイントを考え込んでいるのなら、IDを含むことは問題無し」というふうに落ち着いています。
現実世界でもそうですが、名前等の個人情報はやむなく流出します。しかし「権限・認証・認可」がうまく機能していれば問題にはならないのです。

またこの辺りの考えは例え立派なフレームワークを使っていても考慮が必要なところだと思います。果たして「権限・認証・認可」がうまく機能しているかどうか、見落としているパターンがないかは特にバックエンドエンジニアは意識しておきましょう!

レンタルサーバはConohaWINGが最強にオススメ!

muchilogでは今までいろんなレンタルサーバやSaaSを使ってきましたが、今では全てをConohaWINGにて運営しています。

■今まで使ってきたサービス一覧
・さくらレンタルサーバ(ベーシックプラン)
・カゴヤ
・Azure
・AWS

今ではこのブログは勿論、webサービスのバックエンドやアプリのサーバ機能もConohaWINGで動かしています。
そんなConohaWINGのメリットをいくつか紹介します!

【国内最速No.1】高性能レンタルサーバーConoHa WING

無料で最大2個の独自ドメインが使える!

サイト運営に必要な独自ドメインをなんと無料で取得することが可能です!これだけでも月100円以上は運営費が節約できます。

優れた速度と安定感

私がAzureやさくらを解約した大きな理由はこれ。Conohaは非常に安定して稼働しており、ダウンタイムがほぼ発生しません。発生した場合は潔くお知らせしてくれます。
また、このブログは勿論、バックエンドとして動いてるプログラムも処理速度が大幅に向上しました(体感で倍速以上)。 Azure等のSaaSからレンタルサーバに移行するって普通考えられませんよね?しかし実際に大きなメリットを感じているのです。

頻繁に開催されるキャンペーン

ConohaWINGは半額に迫るようなキャンペーンを頻繁に開催しています。このキャンペーンによって、性能的には業界トップクラスであるにも関わらず、 月額料金換算で最安値クラスで使えるのです。
基本的に長期一括契約の方がお得になるため、muchilogでは最長で契約することをオススメします。価格と性能のバランスを考えれば他に乗り換えることも考えれられませんし。

レンタルサーバは必須です!

web系のプログラミング学習を進める際には、レンタルサーバの契約は必須と思ってください。ローカルの環境と本番環境で動作が違うことは良くありますし、ポートフォリオを公開するのも大切です。

学習や制作に集中するためにも、満足度、速度、安定度全てのレベルが高いConohaWINGを最強にオススメします!

web系サービス開発会社に転職したい!

muchilogではIT系へ転職したいという方には「自社サービスを運営しているweb系企業」への転職をおすすめしています。

web系は「自由な社風」「成長できる環境」「ホワイトな労働条件」であることが多いからです。

そんなweb系企業への転職を確実にするためのプログラミングスクールが登場しました。


RUNTEQ

RUNTEQはただのスクールじゃない!

RUNTEQはweb系の開発会社。開発会社が運営するスクールなので必要とされる技術力は勿論習得可能。しかしそれだけではないのです。

特にweb系で転職・就職活動を行う際にはポートフォリオを求められることがあります。ポートフォリオとは自分自身の作品のことで、技術力や企画力を示すものです。

RUNTEQではポートフォリオの作成を企画段階からサポートしてくれます!

他のプログラミングスクールでは提携企業の派遣やアルバイトとして就職するしかなかったりもしますが、RUNTEQはあなたの市場価値を高める方法まで教えてくれるということですね。

また、RUNTEQが扱う教材はどれも第一線で当たり前に使われている技術。特に未経験者の独学ではどうしてもスキルセットに穴が出来てしまいます。その点RUNTEQは確実に現場力を養えます。

そして2020年2月〜2021年12月までの内定者の98%がweb系企業に内定しています。これはRUNTEQの指導力とサポートが優れていることの証拠でしょう。

まずは無料説明会に申し込んではいかがでしょうか?

RUNTEQ


ノウハウ プログラミング
muchiをフォローする
MUCHILOG
タイトルとURLをコピーしました