サーバサイド
サーバサイド(英: server-side)とは、コンピュータネットワーク上のクライアント-サーバ関係において、サーバが行う操作を指す[1][2][3][4]。
一般的な概念
[編集]一般的に、サーバとは、ユーザーのローカルコンピューターやスマートフォン、またはその他のデバイスからアクセス可能なリモートサーバ上で実行されるウェブサーバなどのコンピューターアプリケーションである。サーバの操作は、クライアントでは利用できない情報や機能へのアクセスを必要としたり、またはクライアント側でそのような操作を行うと遅い、信頼できない、または安全でないため、サーバサイドで行うことがある。
クライアントとサーバのプログラムは、無料または商用のWebサーバやWebブラウザなどの一般的に利用可能なもので、標準化されたプロトコルを使用して相互に通信する。また、プログラマは、独自にサーバ、クライアント、通信プロトコルを作成し、相互でのみ使用することもできる。
サーバサイドの操作には、クライアントの要求に応じて行うものと、メンテナンス作業のようにクライアントに依らないものがある。
コンピュータセキュリティ
[編集]コンピュータセキュリティの観点からは、サーバサイドの脆弱性または攻撃とは、クライアント側ではなく、サーバのコンピュータシステム上で発生するもの、または中間者攻撃を指す。たとえば、攻撃者は、ウェブアプリケーションのSQLインジェクションの脆弱性を悪用して、サーバのデータベース内のデータを悪意を持って変更したり、不正アクセスを取得したりすることがある。あるいは、攻撃者は、基礎となるオペレーティングシステムの脆弱性を利用してサーバシステムに侵入し、サーバの許可された管理者と同じ方法でデータベースやその他のファイルにアクセスできる可能性がある[5][6][7]。
例
[編集]SETI@homeやGreat Internet Mersenne Prime Search (GIMPS) などの分散コンピューティングプロジェクトでは、操作の大部分はクライアント側で行われるが、サーバはクライアントの調整、分析するデータの送信、結果の受信と保存、プロジェクト管理者への報告機能を提供する責任がある。Google Earthのようなインターネットに依存するユーザーアプリケーションの場合、地図データの問い合わせや表示はクライアント側で行われるが、サーバは地図データの永続的な保存や、ユーザーの問い合わせを地図データに変換してクライアントに返すなどの役割を担当している。
World Wide Webの観点では、一般的にサーバサイドのコンピュータ言語には次のようなものがある[8]。
ただし、Webアプリケーションやサービスは、標準ベースのWebブラウザへ(おそらく中間プログラムを介して)利用可能な形式でデータを返せる限り、ほぼすべての言語で実装することができる。
参照項目
[編集]脚注
[編集]- ^ “What are the differences between server-side and client-side programming?”. softwareengineering.stackexchange.com. 2016年12月13日閲覧。
- ^ Lehtinen, Rick; Russell, Deborah; Gangemi, G. T. (2006). Computer Security Basics (2nd ed.). O'Reilly Media. ISBN 9780596006693 2017年7月7日閲覧。
- ^ JS (2015年10月15日). “Week 4: Is There a Difference between Client Side and Server Side?”. n3tweb.wordpress.com. 2017年7月7日閲覧。
- ^ Espinosa, Christian (2016年4月23日). “Decoding the Hack”. alpinesecurity.com. 2017年7月7日閲覧。
- ^ Lehtinen, Rick; Russell, Deborah; Gangemi, G. T. (2006). Computer Security Basics (2nd ed.). O'Reilly Media. ISBN 9780596006693 2017年7月7日閲覧。
- ^ JS (2015年10月15日). “Week 4: Is There a Difference between Client Side and Server Side?”. n3tweb.wordpress.com. 2017年7月7日閲覧。
- ^ Espinosa, Christian (2016年4月23日). “Decoding the Hack”. alpinesecurity.com. 2017年7月7日閲覧。
- ^ “What are the differences between server-side and client-side programming?”. softwareengineering.stackexchange.com. 2016年12月13日閲覧。