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

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

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

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

データベース

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

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1155閲覧

HTMLからPHPを通してデータベースに情報を送るとき、パスワードは露見しませんか?

HHH-

総合スコア28

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

データベース

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

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/11/09 11:31

編集2020/11/09 11:43

###WEBでHTMLからPHPを通してデータベースに情報を送る時のパスワードについて。
いきなりで申し訳ございません、今回は前回質問して得た回答でいろいろ進展がありました。

前回の質問では
・HTMLから直接データベースに情報を送れないこと!
・HTMLから 何らかのインターフェイスアプリケーション(言語) を通して→データベースに送ること!

などの情報を得ることができました。

・提案されたものとして PHPやNodejsなどが挙げられました。

>JavaScriptとかじゃだめなの?
=//クライアントサイドで動くものなので基本NG

・サーバーサイドで動くインターフェイスが条件!

以上の事を把握しました。
提案されたものとしてPHPがあり、調べたところ初心でもすぐに扱えるものだったのでPHPで行きたいと思います。
回答してくださった人に本当に感謝です。

質問に入ります

少し調べた結果
PHPからデータベースに情報をパスするとき、

php

1//データベース接続 2$server = "0000"; 3$userName = "name"; 4$password = "0000"; 5$dbName = "name";//データベースの名前

php

1mysql_connect("接続先サーバー","ユーザーネーム","パスワード");

などでデータベースに接続する必要があるそうです。
ウエブページを一般ユーザーが利用する際、パスワードなどは露見しないのでしょうか?
(多分PHPファイルを覗かれたときパスワードなどが見られると思うんですが。。。)

パスワードなどのセキュルティブな情報以外でパスを通して、データベースにtext文やコメントを送ったり引き出したりすることは可能ですか?

できないとして、パスワードを隠す、PHPファイルに権限をつけるなどの対策は可能ですか?

※条件/一般ユーザー(匿名ユーザー)が使用することを想定しています。

現在の環境は
OSはwin10
サーバーエンジンがNginxです(ポート開放済みでウエブページを公開しています)
データベースはMariaDBをつかってます。

参考にしてるページはhttps://noumenon-th.net/programming/2016/01/18/mysql-2/です

よろしくお願いします。

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

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

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

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

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

takasima20

2020/11/09 11:35

「一般ユーザー」の定義を明確にしてください。
HHH-

2020/11/09 11:38

ウエブ管理者以外の第三者が一般ユーザーとして ページに書き込みコメントをする人たちのことです。
takasima20

2020/11/10 11:40

クライアントのWebブラウザ使用者からWebサーバーのPHPスクリプトが見られるけどどうしたらいいの? という質問にみえるのですが、もしその通りなら杞憂ですよ?
HHH-

2020/11/10 12:14

はぃ その通りです!ウエブサーバーというかデータベースです。 データベースのアクセス情報をPHPスクリプトから見られてしまうのではないでしょうか。 心配しなくて大丈夫なんでしょうか。。。
miyabi_takatsuk

2020/11/11 08:14

> 心配しなくて大丈夫なんでしょうか。。。 心配もクソもありません。 私の回答でも記載しましたが、 > なぜなら、サーバーサイドのファイルを直接見れる時点で、そのサーバーはセキュリティもクソもないので。 バックエンド実行のファイルを直接構文を覗けるなら、サーバーとしてセキュリティが終わってます。 バックエンドは、サーバー側で処理をしたものを、ブラウザに対して最終結果を返します。 処理の途中が覗かれることは基本ありません。 通常、httpアクセスをしてきた一般ユーザーは、ブラウザに返された最終結果しか見ることができません。
HHH-

2020/11/11 09:13

あのw つまり 心配しなくていいですよってことなんですよね?w 確かにサーバーサイドのファイルを見れてる時点で セキュルティーもクソもないってのは つまり普通はサーバーサイドのファイルはのぞけねーよ!って解釈でいいんですよね。 ごめんなさい、私の解釈が悪いのか回答者Miyabi_Takatsukさんの記述を100%把握出来ない用語が多く、至らぬところがあったら指摘してくれるのはありがたいのですが。 質問する身、教えを願う身でありながら無礼を承知で言います >< はっきりとした答え YesかNoが欲しいんです。 申し訳ございません。 もちろんMiyabi_Takatsukさんの記述でわかった点がたくさんあります! 本当に感謝しています^^
miyabi_takatsuk

2020/11/11 09:17 編集

> はっきりとした答え YesかNoが欲しいんです。 YesかNoでは判断できません。 だからそういった答えになります。 凄腕のサーバー侵入者がいれば、サーバーのセキュリティは破られます。 なので、100%YesかNoかでは言えません。
HHH-

2020/11/11 09:20

なるほど!
HHH-

2020/11/11 09:31 編集

では、基本的には サーバーサイドで動くPHPにパスを書き込みしても よっぽどITに詳しい人やハッカーが居なければのぞき見られることはない。 でもだからといってセキュルティー対策を怠らず 下記でも記したように ・暗号化をする ・ルート(階層)から外した部分にphpなどの重要な情報を置く。 ・レスポンス時に情報が露見しないようにエラーレスポンスをする ・アクセストークン?などでセキュリティ担保ができる。 など対策を講じることはしなければならない それでもアンパイだよ?ってことですね!
miyabi_takatsuk

2020/11/11 09:26

そういうことです。 YesかNoで割り切れないことの方が多いんです。 プログラミングの世界自体は、突き詰めれば0か1なのですが、 その組み合わせが無数にあるため、状況や、条件、環境などで、違ってくるので、 答えが一つとは限らないんです。
HHH-

2020/11/11 09:29 編集

やっと安心して制作することができますw スッキリしました! 本当に理解力が無く回答者さんに苦労をかけてしまったことを深く謝罪します。 すみませんでした。 3日間に渡りサポートしてくれて本当に感謝しています! ありがとうございました!m(_ _)m
miyabi_takatsuk

2020/11/11 09:37

いえいえ、 私も、専門用語が多い回答になりすみません。 しかし、例えとか、回し回しの言葉での回答が難しいので、 (今回は特に、それやると、けっこういい量の文量になる) このようになりました。 YesかNoが欲しくなる気持ちはよくわかります。 なので、今回の質問から、グレーはどうしても出ることが多い、 ということを学んでいただければ幸いです。
HHH-

2020/11/11 09:46

はぅ、とんでもない!!涙です感謝です!勉強になりました! これからも至らぬところがありまいしたら ご指導とご鞭撻のほどよろしくお願いします。 ありがとうございましたノシ
guest

回答2

0

ベストアンサー

APIで様々処理すると解して、回答いたします。

パスワードなどは露見しないのでしょうか?

はい、そのままでは簡単に露見しますので、
だいたいは、フロントエンド側から送信された文字列を、サーバーサイドで暗号化し、DBに保存します。

パスワードなどのセキュルティブな情報以外でパスを通して、データベースにtext文やコメントを送ったり引き出したりすることは可能ですか?

パスを通すとは何かがわかりませんが・・・。
ログイン状態をなんらかの方法でフロントエンド側でも保持し、
ログインしてるかつ、アクセストークンなどを使ってセキュリティ担保すればよいのでは?

データ的送信的には、送信側はなんでもいいです。
(JavaScriptの方が遥かにやりやすいが)
ただし、DBに情報保存や、
情報のセキュリティチェックなどは、全てサーバーサイドでやるべきです。
フロントエンド側はいくらでも偽造可能なので。
受け取りは、
送信側のユーザー情報などをサーバーサイドが受け取り、情報の妥当性確認やセキュリティチェックなどをし、オーケーならば、情報を、引っ掛かるならエラーをレスポンスする、というのがだいたいです。
(ログイン状態を、作るのも上記のことをやっていくのが大事)

・できないとして、パスワードを隠す、PHPファイルに権限をつけるなどの対策は可能ですか?

通常はそんなことしません。
なぜなら、サーバーサイドのファイルを直接見れる時点で、そのサーバーはセキュリティもクソもないので。
ただ、処理の中で、この処理はさせる・させないはマストでやります。
また、サーバーサイド処理のファイルは、ドキュメントルートには、置かず、高階層か、とかくドキュメントルート外に置いた方がアンパイです。
(もちろん、それでも完全ではない)

投稿2020/11/09 11:51

miyabi_takatsuk

総合スコア9555

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

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

HHH-

2020/11/09 16:45 編集

なるほど、 まだ専門用語を把握しきれていない部分があり ネットで調べて回答を理解しようと頑張ってる最中ですが、 でも本当に ありがとうございます!! はぅ! 対策として上げられたのが ・暗号化をする ・ルート(階層)から外した部分にphpなどの重要な情報を置く。 ・レスポンス時に情報が露見しないようにエラーレスポンスをする ・アクセストークン?などでセキュリティ担保ができる。 ほむ、勉強になりました。 やはりphpでは"パスワードをつかわずに"データベースにアクセスは、できなさそうですね、(><) (多分かならずデータベースにアクセスするための何らかの情報が使われるので。 それが露見しないようになんとかしたいですね、もちろんできれば100%ノーリスクがいいですけど心当たりあったら本当に知りたいので教えて欲しいです) PHPやNodejs以外に htmlのformタグからポストされる情報を データベースにほぼリスク無しで渡せる "何か物" ってないのでしょうか。
miyabi_takatsuk

2020/11/09 19:20

サーバーサイドを使わない限り無理です。 Firebaseなど、を使えば、フロントエンド側は意識することなくサーバーサイドを使うことができますが、 内部的にはサーバーサイドを使うことに変わりありません。 とにかく、APIによってフロントエンドとサーバーサイドをつなぐことが多い昨今、 フロントエンドにどこまでやらせるか、どこからがバックエンド(サーバーサイド)で処理させるか、 がセキュリティ担保の鍵になります。
guest

0

基本的には
サーバーサイドで動くPHPにパスを書き込みしても
よっぽどITに詳しい人やハッカーが居なければのぞき見られることはない

でもだからといってセキュルティー対策を怠らず
下記でも記したように
暗号化をする
ルート(階層)から外した部分にphpなどの重要な情報を置く。
レスポンス時に情報が露見しないようにエラーレスポンスをする
アクセストークン?などでセキュリティ担保ができる。
など対策を講じることはしなければならない

投稿2020/11/11 09:35

HHH-

総合スコア28

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問