6章堅牢なWeb APIを作る
Web APIは通常のウェブアプリケーションと同様にHTTPを通じて公開されるサービスですから、同様に安定性やセキュリティが要求されます。そしてそれに加えて、ウェブアプリケーションと異なり、機械的なアクセスを受け入れることを前提としているため、通常のウェブアプリケーションとは異なる対策も必要となります。本章では「安全性」と「安定性」の2つの面から、堅牢なWeb APIを作るための方法を考えていきます。
6.1 Web APIを安全にする
Web APIは今やいたるところで使われており、その中にはあたり前ですが外部に知られたくない個人情報や機密情報、あるいはサービス提供側の想定しないやり方でデータの操作をされたくない、といったケースは数多くあります。というよりも、よっぽど一般的な情報を提供している、たとえば天気情報やジオコーディングなどの情報をただ提供するAPIでなければ、情報の公開先や操作できるユーザーなどをコントロールしなければならないことがほとんどのはずです。そこでユーザー認証を使ってアクセスしてきているユーザーを特定したりするわけですが、それだけではサービス提供側が「意図しない」操作や攻撃が行われてしまうかもしれません。インターネットでアクセス可能なWeb APIにおいては、たとえば悪意のある第三者による攻撃や情報の漏洩を防ぐ、認証されたユーザーによる不正な操作を防ぐなど、さまざまな防衛策を考えておく必要があります。
もちろんWeb APIだけでなく、何らかのコンピュータをインターネット上でアクセス可能な場所に設置すれば、攻撃が行われる可能性は必ずありますし、APIではない通常のウェブサイトであっても常に攻撃の危険にさらされています。そしてさらにそれに加えてAPIはそもそもがプログラムでアクセスするものであるがゆえに機械的にアクセスしやすいため、通常のウェブサイトとはまた違った対策も必要となってきます。 ...