プログラムコードの中のパスワード等のハードコードについて

プログラミング作法について教えて下さい.
独学で勉強中なのですが,cronで定期的にwebサービス等にログインしてゴニョゴニョしたいのですが,プログラムコードの中にアカウントのパスワード等ハードコードをするのは気が引けます.
皆様はどういった方法で処理しているのでしょうか?お教え下さい.

回答の条件
  • 1人5回まで
  • 登録:2013/10/14 08:16:20
  • 終了:2013/10/16 22:47:27

ベストアンサー

id:practicalscheme No.2

practicalscheme回答回数157ベストアンサー獲得回数422013/10/14 11:49:17

プログラム起動時に設定ファイルを読み込むようにして、その設定ファイルの中にパスワードやAPI keyを書けるようにする、ということを良くやります。ソース自体はgithubなど公開の場に出すことも多いので。公開ソースにはダミーのサンプル設定ファイルを含めておいて、自分が実際に使うものはローカルで自分だけが読めるようにして管理しておきます。

設定ファイルが取られたらパスワードが漏れちゃいますが、そもそも自分の手元だけにあるはずの設定ファイルが読み取られる状況ならsshの秘密鍵だって取られちゃう状況なので気にしても意味がないでしょう。

暗号化してプログラム内に書いておくというのは疑問です。外部サービスにログインするためのパスワードならプログラム内で復号してるわけですから、プログラムソースを手にした人は誰でも簡単に元のパスワードに戻せます。ソースを絶対に外に出さない、という自信があるなら平文で書いておいても一緒です。

id:giva_0311

回答ありがとうございます.
確かに読み取られる状況でしたら暗号化しても意味はありませんね.
例えば,クラウドストレージにはプログラミング本体のみ同期して設定ファイルは手元で管理とゆうのが現実的なのかもしれませんね.

2013/10/16 22:37:54

その他の回答(2件)

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632013/10/14 09:11:54

MD5とか,ハッシュ関数で暗号化してコーディングすればOKです。
手軽に実現したいのであれば,暗号化されたパスワードをソースコード中に埋め込む場合もあります(PHPのPukiWikiみたいに)
たくさんのパスワードを格納する場合は,暗号化したパスワードをデータベース中に保管しておいて,DBに接続しないかぎりパスワードが見えないように工夫します。

id:giva_0311

回答ありがとうございます.
なるほどやはり暗号化したほうがいいのですね.

2013/10/16 22:16:42
id:practicalscheme No.2

practicalscheme回答回数157ベストアンサー獲得回数422013/10/14 11:49:17ここでベストアンサー

プログラム起動時に設定ファイルを読み込むようにして、その設定ファイルの中にパスワードやAPI keyを書けるようにする、ということを良くやります。ソース自体はgithubなど公開の場に出すことも多いので。公開ソースにはダミーのサンプル設定ファイルを含めておいて、自分が実際に使うものはローカルで自分だけが読めるようにして管理しておきます。

設定ファイルが取られたらパスワードが漏れちゃいますが、そもそも自分の手元だけにあるはずの設定ファイルが読み取られる状況ならsshの秘密鍵だって取られちゃう状況なので気にしても意味がないでしょう。

暗号化してプログラム内に書いておくというのは疑問です。外部サービスにログインするためのパスワードならプログラム内で復号してるわけですから、プログラムソースを手にした人は誰でも簡単に元のパスワードに戻せます。ソースを絶対に外に出さない、という自信があるなら平文で書いておいても一緒です。

id:giva_0311

回答ありがとうございます.
確かに読み取られる状況でしたら暗号化しても意味はありませんね.
例えば,クラウドストレージにはプログラミング本体のみ同期して設定ファイルは手元で管理とゆうのが現実的なのかもしれませんね.

2013/10/16 22:37:54
id:wild_yamato No.3

無頼庵回答回数220ベストアンサー獲得回数452013/10/14 12:48:01

 回答No.2の方が言うように、設定ファイルが良いでしょう。

 プログラム作方についてとのことですが、要件によってプログラムの作り方は変ります。

 回答No.1の方はプライベートで使用する場合とサービスで使用する場合を言っていますね。

 しかし、値をハードコードにするのは薦めません。

 コンピュータは、束縛からの開放によって発展してきたのですから、自由度を確保することが価値に繋がります。

id:giva_0311

回答ありがとうございます.
>コンピュータは、束縛からの開放によって発展してきたのですから、自由度を確保することが価値に繋がります。
肝に銘じます.

2013/10/16 22:47:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません