質問するログイン新規登録
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

5353閲覧

App.configの使い方

moshi

総合スコア90

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/10/11 07:01

0

0

前提・実現したいこと

App.configについて質問です。
アプリケーションを起動する際に読み込まれるファイルというい認識だったため、DBサーバーのURLやDBへのログインID,PWなどを記載して 環境設定ファイル のような扱いをしていたところ
「あまりそういう使い方はしないかも」という指摘を頂きました。

自動で読み込まれるのでファイル読み込みのような処理もいらないし楽だなーと思って使っていたのですが
App.configというのは本来どういう値を格納すべきなのでしょうか?

プログラミングに直接関係のない質問ですみませんが、お答えいただけたらありがたいです。

補足情報(FW/ツールのバージョンなど)

C# .net framework4.8

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

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

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

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

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

Zuishin

2019/10/11 07:13

そういう使い方するんじゃないですか? Entity Framework とかまさにその使い方が公式ですけど。 「使い方」の意味が「コードからの使い方」なら Properties.Settings.Default のことではありませんか?
m.ts10806

2019/10/11 07:15

どこで指摘を受けたのでしょうか
moshi

2019/10/11 07:25

指摘を受けたのは会社の先輩からです… 今考えてみるとApp.configに記載したDBサーバーのURLやDBへのログインID,PWなどを編集する画面を作成していたところなので「あまりアプリ側で書き換えるべきものではない」という意味での指摘だったかもです
m.ts10806

2019/10/11 07:26

もう少し意図や考え方を確認した方がいいかもしれません。 プロジェクトの考え方もあるのでしたらそれはそれで柔軟に取り込む必要があります
moshi

2019/10/11 07:28

>Zuishin様 コード的な意味ではなく用途的な意味で言っていたように思えます…
Zuishin

2019/10/11 07:34

先輩が知らなかっただけという可能性もありますが、本当の意図は聞かなければわかりませんね。使い方としては特に引っかかるところはありません。強いて言えばパスワードをそこに平文で書くのは気持ち悪いと思う人もいるかもしれません。
guest

回答2

0

ASP.NET の構成ファイル (web.config) には接続文字列が含まれることが多く、SQL Server 認証を使っていたりすると ID とパスワードが含まれます。その他にも、外部に漏れてはまずい情報(サーバー名とか暗号化キーとか)も含まれることが多いです。

Windows Forms アプリの構成ファイルにも接続文字列を含めることが多いと思いますが、認証に用いる ID とパスワードが含まれていると、構成ファイルをユーザーはメモ帳で開いて読めますので、セキュリティ的には望ましくはなさそうです。

指摘を受けたのは会社の先輩からです…

とのことですが、その方は上記のような情報の漏洩の可能性を考えていたのではないですか?

ちなみに、ASP.NET Web アプリの場合は、ネットの不特定多数の攻撃者からハッキングされる可能性が高いということから、web.congfig の特定のセクションを動的に暗号化・復号化する機能があります。興味があれば以下の記事を見てください。

接続文字列とその他の構成情報を保護する (C#)
https://docs.microsoft.com/ja-jp/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs

投稿2019/10/11 08:08

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

DBサーバーのURLやDBへのログインID,PWなどを記載して 環境設定ファイル のような扱いをしていたところ

そういう使い方をします。至極まっとうな使い方ですよ。

(https://docs.microsoft.com)アプリケーション設定の概要

Windows フォーム アプリケーションでは、アプリケーションの実行のために欠かせない特定のデータが必要とされるものの、そのデータをアプリケーションのコードに直接含めるのは望ましくないということがよくあります。 アプリケーションが Web サービスまたはデータベース サーバーを使用する場合、この情報を別のファイルに保存することで、将来再コンパイルせずに変更することができます。

投稿2019/10/11 07:17

Y.H.

総合スコア7918

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問