locked
web.configを最大サイズ250KB以上にしたい場合について RRS feed

  • 質問

  • 現在、IIS6を使用しております。
    こちらのフォーラムで、web.config の最大サイズは250KBと知りました。
    そして、その制限を変更するには、レジストリの変更が必要ということも知りました。
    しかし、当方の環境では、現在レジストリの変更が難しく、困っております。
    ただ、どうにかして250KB以上のweb.configの設定を反映したいと考えております。

    自分なりに検証は行いまして、外部ファイル化を行っても250KBが限界ということも判りました。
    現在はディレクトリごとにweb.configを作成しまして、web.configの設定を分割して対応しております。
    ただ、この方法でいいのかどうか(推奨されない方法なのではないか)、ということがあり、お伺いした次第です。

     1.250KBを超えるweb.config の設定方法について
     2.ディレクトリごとにweb.configを作成することの問題点

    お手数をおかけいたしますが、上記2点につきまして、お分かりになる方、教えていただけるとありがたいです。
    何卒どうぞよろしくお願いいたします。
    • 編集済み EleT 2018年5月14日 3:57
    2018年5月14日 3:56

回答

  • こんばんは、

    レジストリの変更はできなかったため .config ファイルの分割で対応されているが、その方法でよいのか?というご質問と理解しました。一般的に推奨されるかどうかという点は保証しかねますが、私の考えを基に回答させていただきます。

    まず、ご質問の1と2について:

    1. 既に言及されているように (1) レジストリの変更 (2) .config ファイルを分割、の2つが対策と思われます
    2. 構文上、特に問題はないと思いますが、サブディレクトリごとに作成する必要はないようです

    回答2について補足します。configSource 属性による構成ファイル読み込みは、.config が配置されているディレクトリ、またはそのサブディレクトリの .config をサブファイルとして読み込むことができるようです。そのため、必ずしもサブディレクトリを作成する必要はないように思います。

    また、次のブログ記事では、250KB 制限の理由について「攻撃者が巨大な web.config ファイルをアップロードする恐れを減少させるため」と紹介されています。さらに、この 250KB 制限の対策として、回答2で述べたとおりの2つの方法が説明されています。ブログは MSFT の方によって書かれたものです(とはいえ、公式の一次情報ではありませんのでご参考まで)。

    [1] Cannot read configuration file because it exceeds the maximum file size (web.config)
    https://blogs.msdn.microsoft.com/httpcontext/2012/10/23/cannot-read-configuration-file-because-it-exceeds-the-maximum-file-size-web-config/

    最後に個人的な意見ですが、設定ファイルを分割する運用はそこまで悪手とも考えません。同じくウェブサーバーとして広く利用されている Apache HTTP Server でも、Include ディレクティブによって、その構成ファイルを分割して運用することが可能です。ファイルの数が増えすぎたり等して管理者の手に負えなくなってしまわないよう、その点だけご注意ください。

    過去の類似のフォーラムのリンクもあわせて掲載いたします:

    [2] web.configの内容を削らずに使う方法について (2018)
    https://social.technet.microsoft.com/Forums/ja-JP/f6bb069a-edac-4a4c-9518-13a92d4695bf/webconfig

    [3] web.configファイルの最大サイズについて (2009)
    https://social.technet.microsoft.com/Forums/ja-JP/e34c7722-db40-422a-a329-dfdf68d7b388/webconfig


    --- Seiji Momoto

    • 編集済み Seiji Momoto 2018年5月14日 13:25 誤字の修正及び改行の挿入
    • 回答としてマーク EleT 2018年5月18日 11:39
    2018年5月14日 13:15

すべての返信

  • こんばんは、

    レジストリの変更はできなかったため .config ファイルの分割で対応されているが、その方法でよいのか?というご質問と理解しました。一般的に推奨されるかどうかという点は保証しかねますが、私の考えを基に回答させていただきます。

    まず、ご質問の1と2について:

    1. 既に言及されているように (1) レジストリの変更 (2) .config ファイルを分割、の2つが対策と思われます
    2. 構文上、特に問題はないと思いますが、サブディレクトリごとに作成する必要はないようです

    回答2について補足します。configSource 属性による構成ファイル読み込みは、.config が配置されているディレクトリ、またはそのサブディレクトリの .config をサブファイルとして読み込むことができるようです。そのため、必ずしもサブディレクトリを作成する必要はないように思います。

    また、次のブログ記事では、250KB 制限の理由について「攻撃者が巨大な web.config ファイルをアップロードする恐れを減少させるため」と紹介されています。さらに、この 250KB 制限の対策として、回答2で述べたとおりの2つの方法が説明されています。ブログは MSFT の方によって書かれたものです(とはいえ、公式の一次情報ではありませんのでご参考まで)。

    [1] Cannot read configuration file because it exceeds the maximum file size (web.config)
    https://blogs.msdn.microsoft.com/httpcontext/2012/10/23/cannot-read-configuration-file-because-it-exceeds-the-maximum-file-size-web-config/

    最後に個人的な意見ですが、設定ファイルを分割する運用はそこまで悪手とも考えません。同じくウェブサーバーとして広く利用されている Apache HTTP Server でも、Include ディレクティブによって、その構成ファイルを分割して運用することが可能です。ファイルの数が増えすぎたり等して管理者の手に負えなくなってしまわないよう、その点だけご注意ください。

    過去の類似のフォーラムのリンクもあわせて掲載いたします:

    [2] web.configの内容を削らずに使う方法について (2018)
    https://social.technet.microsoft.com/Forums/ja-JP/f6bb069a-edac-4a4c-9518-13a92d4695bf/webconfig

    [3] web.configファイルの最大サイズについて (2009)
    https://social.technet.microsoft.com/Forums/ja-JP/e34c7722-db40-422a-a329-dfdf68d7b388/webconfig


    --- Seiji Momoto

    • 編集済み Seiji Momoto 2018年5月14日 13:25 誤字の修正及び改行の挿入
    • 回答としてマーク EleT 2018年5月18日 11:39
    2018年5月14日 13:15
  • Seiji Momoto様、ご回答ありがとうございます。
    “Momoto様のお考え”とのことですが、大変有効な内容と思います。助かりました。
    活用させていただきます。

    > ファイルの数が増えすぎたり等して管理者の手に負えなくなってしまわないよう、
    > その点だけご注意ください。

    承知いたしました。
    可能な限り、整理した運用を心がけたいと思います。
    ありがとうございました。
    2018年5月18日 11:45