• 締切済み

データベース接続文字列の暗号化もしくはセキュリティ対応

  ASP(VBScript)で作成されたWebアプリケーションにおいて、 インクルードファイルにデータベース接続文字列を平文で定義しています。 これがセキュリティ上問題ありとのことで、 暗号化もしくはセキュリティ対応を行わなければならなくなりました。 いろいろと調べてみましたが策が見付からずここに投稿させて頂きました。 もし常套手段や良策などを知っている方がいましたらご教授いただけるととても助かります。 宜しくお願いいたします。  

みんなの回答

回答No.2

考え方としては、 ・接続文字列があるインクルードファイルを暗号化。 ・接続文字列を暗号化してインクルードファイルへ書いておき、実行時に復号化して使用。 となるでしょう。 前者の例としては http://www.atmarkit.co.jp/fwin2k/win2ktips/443wshenc/wshenc.html があります。 後者の場合は、自分で暗号化するか、暗号化のためのコンポーネントを購入するかになるでしょう。 こちらも参考になります。 http://www.trusnet.com/secinfo/docs/webprog2/part2-section2.html ちなみに、どこまで調べられているのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • 1E-9
  • ベストアンサー率51% (22/43)
回答No.1

WEBサーバのレジストリを修正する権限があるようでしたら、レジストリに書き込んではいかがでしょうか。

参考URL:
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a02_02_main.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPの可逆暗号化関数について

    こんにちは、現在PHP ver5とpostgreSQLでデータベースと連携させて使っているのですが、 テーブル内にデータを入れる際、今は平文のまま登録していますが、 この文字列を、暗号化してデータベースに登録し、取り出したい時に複合化して平文に戻せる関数はどういったものがあるでしょうか。 IDやパスワードといった文字列ではないので不可逆暗号化関数では元のデータベースの平文が分からなくなってしまうと思うのですが、 これを暗号化して登録しておき、抽出する際に元に戻す作業をしたいのです。 これってURLエンコード・デコードとは違いますよね・・・。 長くなりましてすみません。わかる方よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPソースファイルの文字列置換をしてから、

    PHPソースファイルの文字列置換をしてから、 そのスクリプトを実行する方法を実行しようとしている のですが、うまくいきません。 似たような質問(http://oshiete.nikkeibp.co.jp/qa5496696.html) を参考にして、文字列置換自体はうまくいったのですが、 phpファイル実行時にまったく関係の無いはずの DBアクセスでエラーが発生してしまいました。 変換前前のphpファイルに置換後の文字列を手で入れて、 データベース実行するとうまくいきます。 しかしながら、phpファイルの文字列置換をstr_replaceで実行し、別名保存した後 includeしても、うまくいかないといった状況です。 ちなみに置換後のphpファイル内で $置換後文字列 = "test"; echo $置換前文字列; とすると、置換前文字列が置換後文字列に きちんと変わっているようで、 "test"と出力されます。 もしかすると、原因は違う所に潜んでいるのかもしれませんが、 どこを調べれば良いのか検討がつかず困っております。 どなたか解決手段の分かる方がいらっしゃれば教えて頂けませんでしょうか? -------------------------------------------------------------- 尚、ファイル構成は top |-change (1.php) |-database (2.php) |-search (検索画面[データベース検索の入り口。form action ="./3.php"],3.php) |-base (4.php,5.php[tempファイル]) となっており、 それぞれの中身は 1.文字列置換実行用のphpファイル(1.php):  1-1.file_get_contentsで4のphpファイルを取得  1-2.str_replaceを用いて文字列置換  1-3.文字列置換したファイルをfwriteで4.phpと同じディレクトリに保存(5.php)  1-4.5.phpをincludeする。  1-5.5.phpをunlinkする。 2.データベースアクセス(mysql)用関数を含むphpファイル(2.php):  ↓エラーの原因と思われる関数  function connect() { global $host,$user_id,$passwd,$con; $con = mysql_connect($host,$user_id,$passwd); } 置換前phpファイルを手動で文字列置換した場合には  同ファイル内で設定したglobal変数の値がきちんと格納されており、  データベース実行がうまくいきます。  置換後phpファイルでは$host等に値が格納されていないため、  データベース実行がうまくいきません。  グローバル変数の中身は同ファイル内で定義しています。 3.検索を実行した時に呼び出されるphpファイル(3.php):  3-1.include("../change/1.php"); 3-2.1.phpの関数の実行 4.文字列置換前のphpファイル(4.php): /*呼び出し元のディレクトリ位置でないとincludeに失敗する*/ 4-1.include("../database/2.php");  4-2.2.phpのデータベースアクセス関数を実行する。 5.文字列置換後のphpファイル(5.php): 3-2の1.php関数の実行により、一時的に生成される。

    • ベストアンサー
    • PHP
  • ASP.NET から Access (SQLServer)データベースに接続できない

    表記問題ですが下のURLで報告されていますが、 http://support.microsoft.com/default.aspx?scid=kb;ja;316675 解決方法がいまいちわかりません。 1)Machine.config ファイルの <processModel> セクションで、ASP.NET ワーカー プロセスが SYSTEM アカウントで実行されるように構成します。 2)セキュリティ上の理由から、マイクロソフトでは ASP.NET アプリケーションに対して偽装を有効にすることを推奨します。偽装されるユーザーがコンピュータやアクセスするデータベースに対して必要なアクセス許可を持っていれば、この方法は正常に機能します。 3)データベースおよびデータベースのフォルダに対して、"Everyone" グループに読み取りと書き込みの権限を与えます。この方法は安全ではありません。このためマイクロソフトではこの方法を推奨していません。 DBMSはアクセスMDBもしくはSQLサーバです。OSはWinXPPro わかりやすく具体的に説明していただけませんか?

  • JavaからVBScriptへのAES暗号化によるデータ渡し

    javaで作られたサイトからVBScriptで作られたサイトへサイレントログインするシステムを構築しています。 その際にログインIDをAES(キー長128bit、ECBモード)で暗号化し渡そうと考えています。 javaではCipherクラスで暗号化し、aspではCAPICOMで復号化しようとしているのですが、うまくいきません。 そもそも同じ平文と鍵で暗号化しても同じ暗号文になりません。(javaはbase64に変換しています。CAPICOMが間違っているような気はしているのですが、参考になるものが少なくて困っています。) CAPICOMはhttp://apis.jpn.ph/fswiki/wiki.cgi?page=ScrapCode%2FVBS%2FConvertのサンプル通りにやっています。 CAPICOMでもjavaでも同じ暗号化方式ならば同じ結果が返ってくるべきだと思うのですが、認識違いますか? どうすれば、同じ暗号文が取得できるのでしょうか? また、java-VBScript間のAES暗号でのデータ渡しについて、 違う方式で可能ならば教えてください。 よろしくお願いします。

  • Web上にデータベースを置きたい。

    はじめまして。 今私の会社で、Webデータベースアプリケーションを稼動させたいと考えております。 簡単な条件として 1.セキュリティが強固であること 2.OSはUNIX系であること 3.Webサーバーはレンタル可能なこと を想定しております。 1.のセキュリティに関しては暗号化やパスワードでの認証などを考えております。(その他にこれはやった方がいいというのもあれば教えていただけると助かります。) データベース作成のソフトウェアなどをどうすればいいのか悩んでおります。 当初は、SQLサーバーを利用してColdFusionと連携させて暗号化などをかけたいと思っておりました。 でも、わざわざColdFusionと連携をさせなくても 暗号化などがかけれるのかがよくわかりません。 また大変勉強不足な面もありますが、何卒宜しくお願い致します。

  • Global.asaについて

    お世話になります。 今回ASPを使用してアプリケーション開発をしております。 データベースに接続して、データを拾おうと思うのですが、そのデータベースへの宣言などをGlobal.asaでしようと試みている途中で止まってしまいましたので・・・ Global.asaはルートディレクトリにおいてあり、IISでの設定はセッションONになっております。 テスト的に実行するため、 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Application("test") = "" End Sub Sub Session_OnStart Application.Lock Application("test") = "ttt" Application.UnLock End Sub </SCRIPT> とGlobal.asaには記述してあります。 ASPには <% Response.Write test %> と記述してありまして、実行しますと「ttt」と表示されません。なにか間違っている部分はあるのでしょうか?

  • アップデートが失敗しました

    昨日から気づきましたが、ESET smart SECURITY5のウイルス定義データベースのアップデートが失敗しましたと表示されました。ファイルダウンロード中エラーが発生したようです。何か解決策ありますでしょうか?よろしくお願いします。 ※OKWaveより補足:「ESETセキュリティ ソフトウェア シリーズ」についての質問です。

  • Windows XP Proのリモートデスクトップについて

    Windows XPのカテゴリで投稿したのですが、回答が付かなかったのでこちらで再投稿させていただきます。 この度初めてWindows XP Proに搭載されているリモートデスクトップ機能を利用しようと考えているのですが、少々不安なところもあるので有識者の方にご教授願いたいです。 リモートデスクトップを使う上で考慮すべきセキュリティ面の話なのですが、RDPはTCP 3389を使用するのでこの既定ポートを変更するのはもちろんだと思いますが、この際のパケット内容はセキュアなものなのでしょうか? ターミナルサービスには暗号化の方法が低・中・高と設定できるようですが、リモートデスクトップの暗号化強度はどの程度なのでしょうか? 接続設定ファイル(*.rdp)を保存して覗いたところ、全て平文で保存されていました・・・。 この扱いからまさか通信内容まで平文で送受信するのではないかと不安を覚えました。 またWinXP SP2のベータテスト時点ではマルチセッションが試案されていたようですが、結局導入されなかったようです。 なぜ導入見送りになったのかご存知の方いましたらこの辺もお願いします。 参考URL: http://itpro.nikkeibp.co.jp/free/NT/NEWS/20040113/1/

  • ASP上1画面に複数のテーブルからデータを取るには

    いつもお世話になっております。 ASPの1画面に、複数のプルダウンを設置して、 そのプルダウンの内容をDBから拾ってきたいと思ってます。 DBのサーバーはsqlserverです。 各テーブルは、項目が全く違うのでJOINは使えません。 ご存知でしたら、ご教授お願いします。 1つのDBを読み込む際は、以下のコードにておこなってます。 <%@ LANGUAGE="vbscript" CODEPAGE=65001 %> <% Session.CodePage=65001 %> <!--#include file="config.inc"--> <!--#include file="dblib.asp"--> <% ' データベース利用用変数 Dim Conn ' Connection オブジェクト Dim Rs ' レコードセットオブジェクト Dim SQL ' SQL 文格納用 ' データベース接続の確立 Set Conn = ConnectDB(DSN) ' 会社の一覧を取得 SQL = "Select 法人コード,会社コード,法人名称 From 法人マスタ ORDER BY 法人コード" Set Rs = ExecSql(Conn, SQL) %> どうぞよろしくお願いいたします。

  • 【asp.net】パラメータの永続的な保持について教えてください。

    はじめて投稿させていただきます。 ASP.NET開発を始めてまだ日が浅いです。自分なりにいろいろなサイトや書籍を調べたのですが、解決策が見つからず困っています。 よろしくお願い致します。 <開発環境・開発言語> VisualStudio2005、VB <現在できている事> ASP.NETのアプリケーションを作成しています。まず他のサイトにユーザがログインし、そこから私が作成しているアプリケーションをリンクから別ウィンドウで開くのですが、その際ログインIDを取得します(Formで取得)。 <やりたい事> 自分のアプリケーション内で、取得したIDを永続的に保持しておきたいです。永続的というのはユーザがアプリケーションのウィンドウを開いてから閉じるまでの間です。恐らく9時間開きっぱなしのユーザもいるかと思います。 なお、ページはMasterPageを使用しており、ログインIDはMasterPageとContentPlaceHolderの両方で使用したいです。画面遷移はMasterPageに作成したボタンより行います。 <試してできなかった事> ・Session変数のタイムアウトをweb.config内で1440分に設定したのですが、それより早くSessionが切れてしまいました。 ・各ページにHiddenでログインIDを持たせ、MasterPageに書込み専用Labelを設けて、各ページの画面遷移時に値を設定しました。 これもSessionと同様にある時点で値がクリアされてしまいます。 ASPで開発していた時はHiddenに設定すればできていたと思うのですが、ASP.NETはこの考え方ではダメでしょうか? データベースで管理する方法もネットに載っていたのですが、今は環境がなく試すことができませんでした(近々SQLServerを導入予定ですが)。 セキュリティ上このようなアプリケーションは良くないのかもしれませんが、社内でのみ使用するもので、またユーザからの要望のため何かしらの方法で実現しなくてはいけないため、困っています。 どうぞよろしくお願い致します。