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

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

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

データベース

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

Q&A

解決済

3回答

659閲覧

CakePHPのデータベースパスワードをベタ打ちすることの不安

tomona

総合スコア37

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

データベース

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

0グッド

2クリップ

投稿2018/03/18 15:08

CakePHPのデータベース接続用のIDやパスワードをconfigディレクトリのapp.phpに下記のように記載すると思いますが、ソースファイルにパスワードをベタ打ちしていることに不安を覚えます。
webrootフォルダ以外は非公開ディレクトリにするかとは思いますが、それだけでセキュリティ上の問題はないのでしょうか。

皆さんはどのように対策していますか。
宜しくお願い致します。

php

1 'default' => [ 2      ~中略~ 3 'username' => 'my_app', 4 'password' => 'secret',//←パスワードベタ打ち 5

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

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

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

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

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

guest

回答3

0

何の脅威に対して不安を覚えているのかを整理する必要があります。
・非公開領域を自由に覗ける
・公開領域にスクリプトを仕込むことが可能
等に対しては、何をやっても ID/パスワードは漏れてしまいます。

逆に
・DB アクセスの権限のない人に ID/パスワードを見せたくない
といったことであれば、有用です。

まず、脅威を整理することからはじめてください。

投稿2018/03/19 02:15

編集2018/03/19 02:32
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

config.phpからパスワード文字列を逃がすネタは色々とあります。
環境変数にしたり、別のiniファイルやJSONファイルで管理したり……

ただ一つ言える事は、
サーバーマシンのどっかにパスワード文字列を埋め込まなくてはシステムが動作しません、
なので最終的には腹くくって下さい。

絶対にマシンの中身を見せてはいけませんし、乗っ取られてはいけません。


webrootフォルダ以外は非公開ディレクトリにするかとは思いますが、

それだけでセキュリティ上の問題はないのでしょうか。

まぁ、非公開領域に置いたらそう簡単にはアクセス出来ませんので、
他の脆弱性でサーバマシン内に侵入されない限りは安全かと思います。

例え金に糸目をつけなくても、絶対にブロックしたいならセキュリティ会社に調査してもらう事をオススメします。
一通りの攻撃、調査レポート、改善指示、それでも攻撃された時の保険…などなどを行ってくれると思いますので、
業務で行う場合は上長に相談してみてはいかがですか?

書籍としては少々古いですが、良書を紹介します。
フロントエンド、バックエンドがごっちゃになってますが、攻撃の手法が体系的に勉強できてオススメです。
PHPサイバーテロの技法―攻撃と防御の実際

投稿2018/03/19 01:22

miyabi-sun

総合スコア21158

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

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

退会済みユーザー

退会済みユーザー

2018/03/19 02:08

PHPサイバーテロの技法 この本、相当古いんで、ある程度現在の事情に理解が進んだ後に読まないと更に混乱するかと。(最初の一冊目にしちゃだめなやつw) 面白いは面白いんだけど、万人向けではないと思う。
miyabi-sun

2018/03/19 02:14

うーん、そうかもしれないですね… 何か良い書籍ありますかね?
退会済みユーザー

退会済みユーザー

2018/03/19 02:18

徳丸さんの改訂版に期待w
退会済みユーザー

退会済みユーザー

2018/03/19 02:29

ちなみに、私が 「PHP サイバーテロの技法」を入手したきっかけは teratail のどっかで紹介されていたから。 紹介者、たぶん miyabi-sun さんじゃないかなぁ。良いきっかけをありがとう!
miyabi-sun

2018/03/19 02:33

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 徳丸さんと言えば、この書籍が6月に改定されるらしいですよ。
tomona

2018/03/19 09:52

皆様 参考書籍のご紹介ありがとうございます。 ちょうど6月に改定版が出るとのことで「安全なWebアプリケーションの作り方」という本を読んでみたいと思います。 業務目的で作るのですが、少人数のチームのため私が実質の上長のようなもので相談相手がおりません笑 パスワードを逃がす方法はあるとのことですが、それらは一般的に使われる手法でしょうか。 どこまで対策するかが焦点になるかと思いますがネットバンキング並みの信頼性を確保したく、そうなるとベタ打ちではなくもう一歩対策が必要でしょうか。
退会済みユーザー

退会済みユーザー

2018/03/27 23:46

ネットバンキングを目標にするのは、無駄だと思いますよ。「関係者の範囲」、「かけられるコスト」、「関連法律」、「必要とされる技術」のすべてが違うはずなので、目標に成りえないです。 目標を間違うと、目的も手段も誤ります。ちゃんと整理したほうがイイです。
guest

0

異論はあるかもしれませんが、極端なことを言えば、データベースのユーザー名やパスワードは、mysql内部やDBを使うアプリケーションのための単なるアクセス権の設定であって、例えば不正アクセス防止のためなどのセキュリティーを高める目的のものではない!と思うことにしています。

ですので、セキュリティーを高めるにはそのほかの設定が正しく行われていることが大前提です。
たとえば、
・不正にサーバーにログインしたりデータを読み取ったりできないこと
・正しいアクセス権の設定(ユーザーやファイル、フォルダなど)
・外部からデータベースにアクセスできないこと(mysqlの設定やファイヤーウォールなど)
・常に最新のバージョンを維持して脆弱性をつぶす
などなどなど

極論を言えば他がちゃんとしていて、要件としてDB内部のアクセス権の必要ないのであれば、dbのパスワードはroot/パスワードなしとかでもダメ!というわけではないかなと思います。

とはいえ、どういう形で侵入されるかわからないので、念のためちゃんとユーザー名とパスワードは設定しましょう。ハードルは多い方がいいですからね!

投稿2018/03/27 20:30

CodeLab

総合スコア1939

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

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

tomona

2018/04/28 04:23

ご回答ありがとうございます。 そうなのですね。ユーザーパスワードをハッシュ化して保存するようにデータベースのパスワードもハッシュ化したほうが良いかと思いましたが、そのような運用はなされていないのですね。 ひとまず、データベースの設定については現状のままで、ファイアウォール等の対策を強化したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問