ホームページ  >  記事  >  バックエンド開発  >  asp.net での Access データベースのダウンロードを防止する

asp.net での Access データベースのダウンロードを防止する

伊谢尔伦
伊谢尔伦オリジナル
2016-11-25 09:49:461193ブラウズ

Access データベースのダウンロードを防ぐ方法は非常に古いトピックであり、インターネット上で多くの議論が行われています。ここでは、ASP.NET で Access データベースがダウンロードされないようにするいくつかの方法を紹介します。

ここでは、Access データベース名が test.mdb であると仮定します。

1. データベースを WEB ディレクトリの外に配置します

Web サイトのディレクトリが D:www の場合、データベースをフォルダー D:data に配置し、Web サイト プログラムのデータベース接続文字列アドレスを次のように変更します。 :datatest.mdb」を追加すると、データベースを正常に呼び出すことができますが、Web サイトのディレクトリにないためダウンロードできません。

データベース接続文字列が web.config で構成されていると仮定します。例:

 <connectionStrings>
        <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source=d:\data\test.mdb" providerName="System.Data.OleDb" />
    </connectionStrings>

2. データベースを App_Data システム フォルダーに配置します。

.Net2.0 以降は、Access、SQL Server Express、XML を格納するために使用できます。およびその他のデータ ファイル。データベース ファイルを App_Data フォルダーに配置する利点は、データベース ファイルがダウンロードされないようにすることができることです。接続文字列データベースのファイルの場所については、DataDirectory キーを使用してその物理パスを表すことができるため、接続文字列を取得するときに Server.MapPath() 変換を使用する必要がなくなりました。

データベース接続文字列が web.config で構成されていると仮定します。例:

 <connectionStrings>
        <add name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;data source=|DataDirectory|test.mdb" providerName="System.Data.OleDb" />
    </connectionStrings>

|DataDirectory| は app_data フォルダーを表します。

3. データベース ファイルの名前を変更します

Access の名前を変更します *.asax: ASP.NET の処理メカニズムのため、デフォルトでは、そのような要求は直接拒否されます。このアイデアに従って、Access の名前を *.config、*.vb、*.cs などに変更することもできます。

4. IIS を構成し、.mdb ファイル タイプ マッピングを追加します。

.mdb 拡張子マッピングを追加する この方法は、IIS 設定を変更することで実現します。たったの2ステップ。

1. .mdb ファイル タイプを ASP.NET ISAPI にマップするように IIS を構成します。

Windows 2003 を例として、「スタート」→「ファイル名を指定して実行」→「inetmgr」と入力し、Enter キーを押して「インターネット サービス マネージャー」を開きます。 Webサイトを右クリック→「プロパティ」をクリックすると、このサイトのプロパティダイアログボックスが表示されます。 「ホームディレクトリ」タブをクリックし、「設定」ボタンをクリックすると、「アプリケーション設定」ダイアログボックスが表示されます。 [追加] をクリックしてマッピングを追加するダイアログ ボックスが表示され、実行可能ファイル「C:WINDOWS Microsoft.NET Framework v2.0.50727 aspnet_isapi.dll」を入力します。拡張子「.mdb」を入力します。以下の図に示すように

asp.net での Access データベースのダウンロードを防止する

2. asp.net の web.config ファイルを構成し、.mdb ファイル タイプを HttpForbiddenHandler HTTP ハンドラーにマップします。

asp.net アプリケーションの .mdb ファイル タイプを HttpForbiddenHandler HTTP ハンドルにマップできるようにします。この手順を実行するには、次の構成を Web.config ファイルに追加する必要があります

 <httpHandlers>
            <add verb="*" path="*.mdb" type="System.Web.HttpForbiddenHandler" />
   </httpHandlers>

5. ACCESS のダウンロード防止フィールドを追加します

この方法の原理は、データベースの拡張子を .aspx 形式に変更することです。このファイルが入力されると、IIS サーバーはそのファイルを aspx プログラムとして実行します。以前に ACCESS データベースに「" タグは実行できるため、「スクリプト終了タグがありません」という 500 エラーが表示され、その他は ACCESS データベースをダウンロードできなくなります。データベースのテキスト フィールドまたはメモ フィールドに「

1. まずテーブルを作成し、SQL コマンド ウィンドウに次の内容を入力します。「create table [notdown]([notdown] oleobject)」

次に、[実行] をクリックします。ツールバーにあるように、フィールド名「notdown」、フィールド タイプ「OLE オブジェクト」を持つ「notdown」テーブルが現在のデータベースに作成されます。 図1に示すように

asp.net での Access データベースのダウンロードを防止する

2. SQLクエリウィンドウの内容を次のコマンドに変更します:「insert into [notdown](notdown)values(0x3C25)」

この文は「に挿入」を意味します。 [notdown](notdown) 値 (0x3C25)"

「notdown」フィールドに「0x3C25」のデータを挿入します(「0x3C25」は文字「

実行が完了したら、データベース内の「テーブル」を再度確認すると、追加の「notdown」テーブルがあることがわかります。開くと、フィールドに「長いバイナリ データ」が表示されます。 " 図 3 に示すようにasp.net での Access データベースのダウンロードを防止する

🎜🎜

admin10000.com ダウンロード防止データ テーブルはここで用意されており、直接ダウンロードして独自のデータベースに貼り付けて使用できます。 notdown データ テーブル

ヒント 1: ASP Web サイトであっても ASP.NET Web サイトであっても、Access データベースのサフィックスを .asp および .aspx に直接変更すると、FlashGet などのダウンロード ツールを使用して正しくコピーできます。ダウンロードの影響は妨げられません。
ヒント 2: 5 番目の方法は通常、ASP+ACCESS Web サイトで使用されます。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。