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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Webサイト

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

PHP

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

4回答

1175閲覧

バックエンドの役割って、DBへのデータの出し入れ以外にあります??

退会済みユーザー

退会済みユーザー

総合スコア0

Webサイト

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

PHP

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/05/28 12:02

php等バックエンドでの処理って、クライアントから送られてきたデータの出し入れがほとんどですよね?(バリデーションもデータの出し入れに含むものとします)

業務系システムでwebの技術で作られていることがありますが、
ああいうのはネイティブアプリにしてデータはクラウド上のDBで管理し、
そこに直接接続するような作りでいいのでは?インフラの手間も減るしフロントとバックに別れなくて良いし。という疑問からこの質問をしました。

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

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

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

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

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

guest

回答4

0

先人達もその辺はスケールアウトも考慮に入れて色々考えてきた訳です。

以下参考。
アプリケーション・アーキテクチャ・ガイド2.0解説

投稿2020/05/28 13:47

sazi

総合スコア25195

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

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

0

クライアントサイドからのリクエストが改竄されないという保証は原理的に難しいという前提があります。
(例えばMan in the middle攻撃を自分で行えばTLSによる暗号化は意味を為しません)

その上で、伝統的なRDBMSやKVSに限って言えば、
サーバーサイドアプリケーションが担っている粒度での権限管理が出来ないので、エンドユーザー側で好きにSQLを発行できる状態になるとアプリケーションが成立しなくなりますね。

例えば、あるテーブルに対して自分のデータだけSELECTを許可する様な制御はRDBMSでは難しいです。

投稿2020/05/28 12:33

編集2020/05/28 12:35
tanat

総合スコア18713

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

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

退会済みユーザー

退会済みユーザー

2020/05/28 13:00

firebaseの cloud firestoreはどうなんでしょうか? あれもクライアントサイドから直接DBに出し入れするようなものですが
tanat

2020/05/28 13:08

> 伝統的なRDBMSやKVSに限って言えば、 と前提をつけているので、 firestoreなどのクライアントサイドからの直接アクセスを前提としたものであれば可能ではあります。 が、それだけでWebアプリケーションに必要な機能を全部実装するのはかなり大変です。 (googleの他の機能と連携するのであれば、それは結局サーバサイドで実装しているのと層は同じなので)
guest

0

ネイティブアプリを開発・配布・管理するのは、Webでフロントエンドを開発するより手間かと思います。

投稿2020/05/28 12:11

maisumakun

総合スコア145184

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

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

maisumakun

2020/05/28 12:12

Webにしても専用アプリを使うにしても、セッション・権限管理はサーバサイドで行う必要があります。
退会済みユーザー

退会済みユーザー

2020/05/28 13:04

状態管理をクライアントサイドで行うのであればセッションは不要では? 現にvue/vuexでセッションを使わずログイン状態などを維持する方法があるようです
maisumakun

2020/05/28 13:07

> 現にvue/vuexでセッションを使わずログイン状態などを維持する方法があるようです 「セッション」と呼ぶかどうかはともかくとして、権限の切り分けが必要な場合には何らかの状態管理を「両側で」行う必要があります。
miyabi_takatsuk

2020/05/28 15:33 編集

横槍失礼します。 質問者さん、 vuexにて(ようはフロント側から)ログイン管理など、セッションと同様の機能を使うには、大きく分けて、firebaseを使う方法と、WebSplageを使う方法があります。 firebaseを使う方法は、フロントエンドのみではありませんので、セッションかそれに該当するサーバーサイドの機能を使っているはずです。 そして、WebStrageは、セキュリティに関わる部分での使用は避けるべきです。 https://techracho.bpsinc.jp/hachi8833/2019_10_09/80851 特にユーザーの重要な情報を扱う際はまだまだWebStrageを使うべきではないと思います。 つまり、サーバーサイドのセッションに取って代わるにはまだ難しいということです。 (ログインに関しても、サーバーサイドか、firebaseを使うべき) maisumakunさんの仰るとおり、両側で状態管理する際の、フロント側で、WebStrageを使うのはありかと思います。 つまり、なんにせよ、フロントのみでやるにはセキュリティガバガバになるのでやるべきではないってことです。
guest

0

まぁいろいろありますよね

  • クライアントのリソースや環境に依存しない
  • ソースのブラックボックス化
  • 他社と同じデータを共有できる

投稿2020/05/28 14:05

yambejp

総合スコア114839

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問