- PR -

IISにpostでエラー

1
投稿者投稿内容
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-04 20:32
末尾のHTMLをIIS経由で表示させて、ボタンをクリックすると

HTTP エラー 405 - このページへのアクセスに使用された HTTP 動詞は許可されていません。

とブラウザ上に表示され、次画面に遷移できません。
POSTをGETに直せばうまくいきます。
POSのままでIIS経由でなくローカルファイルをIEに読み込ませてもうまくいきます。

本来html相手に値をpostしてもしょうがないのですが、この画面は業務アプリを
ベースにデモ画面を作成されているので、こういったつくりになっています。
この記述は大量にあります。

IISの実行アクセス権は"スクリプトおよび実行可能ファイル"としています。
IIS設定 ディレクトリ=>構成 でhtmlへの"post"を許可すればいいのかともおもうの
ですが、htmlエントリがなく設定法がわかりません。

なにかよい方法はないでしょうか?

環境
 IIS5.1
 Windows Server 2003 Standart Edition SP1

<html>
<head>
</head>
<body>
<form name="form1" method="POST" action="next.html" value="next">
<input type="submit" name="logon">
</form>
</body>
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2007-12-05 00:27
以下のページは参考にならないでしょうか。
http://www.atmarkit.co.jp/fwin2k/win2ktips/766iis6ssi/iis6ssi.html

progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-05 09:20
レスありがとうございます。
この方法試してうまくいきました。SSIを有効にするというのがひっかかります。
このサーバはSSIをつかってないのでできれば、SSIは無効でやりたいの
ですが、なにか方法はないでしょうか?
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-05 16:17
説明を加えます。

問題のHTMLを含むコンテンツは他の部署からサーバに相乗りしています。

私は本来のそのサーバの目的のための開発・運用に携わり、問題のコンテンツ
の開発にはタッチしていません。
ですので、どんなコンテンツができるか予測がつきません。
本来目的ではないコンテンツも公開するということで、限定的に運用の補助をおこ
なっているだけです。
アップロードは制限していますが、実際アップするのは私と直接関連のない他部署で
おこなっています。
ここでSSIを許可してしまえば、予測のつかない結果になりかねないとおもいます。

そこで紹介いただいたURLの方法で
1)実際にはSSIが動けない様制限する。
2)SSI以外の無難な機能をダミー付加することにより、htmlへのPOSTを可能にする。
か、まったく違う
3)現状どおりの機能でhtmlへのPOSTの許可だけできる。
方法を知りたいとおもいます。

なにか策はないでしょうか?

アップする部署の人が信頼できないわけでもなく、公開範囲は社内(数千人)規模
ですが、ここまで心配するのは杞憂でしょうか?

kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2007-12-05 23:39
kiyokuraです。

お尋ねの件に関して、ズバリ有効な回答は持ち合わせていないので書こうかどうしようか迷ったのですが、もし何かの足しになればと思い、書くことにしました。
良ければ目を通してみてください。


実は以前、私もほとんど同じ事態(本当に同じようなケースで、Webアプリから静的なHTMLを作成して構築したデモサイトで発生)に遭遇したことがあります。
その際もいろいろ調べてはみたのですが有効な情報が見つからず、結果的に『拡張子htmlで素直にPOSTを受け付ける設定は無理』と判断するに至り、且つ『このためだけのSSI許可は現在の(=当時の管理していたサーバの)ポリシー上、不可能』とし、HTML側を修正するようにしました。
#基本的にはmethodをGETにするだけなので一括で置換という対処が可能だったこともあり。


引用:

アップする部署の人が信頼できないわけでもなく、公開範囲は社内(数千人)規模
ですが、ここまで心配するのは杞憂でしょうか?


公開範囲が限られているとはいえ、管理者としては当然考えなければならない事と思いますので、杞憂とは思いません。
また、2003 ServerのIIS 6.0であれば、規定では[WEBサービス拡張]でSSIが禁止されている設定の筈ですから、そこを有効にすることで既存の他のコンテンツに影響が出る可能性というのも考慮する必要が出てくると思います(まず普通は問題無いと思いますが)。


ただ、現実的な対応としては、IISではSSIで出来ることもそれなりに限られていることもあり、execについは禁止も出来ますから、社内利用ということでSSIで受け付けるという解もありとは思います。(そうする場合は、最低限execは禁止してしまった方が良いとは思います。あと、includeで余計なものを参照されないように[親のパスを有効みする]もOFFに。これはIIS6では既定でそうなっていると思いますが。)


[IIS]SSIで#execを無効にする方法
http://support.microsoft.com/default.aspx?scid=kb;ja;195291


また、特定のサイトや仮想ディレクトリについてのみ無効にする方法もあります。(これが現実的かどうかはサイトの規模や運用状態等によると思いますが)
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/iis/eced0b89-e052-42ff-baa8-751dd191c3b5.mspx?mfr=true


最後に、以下のリファレンスがIISのSSI(ややこしいですね(^^;)で何ができるかなど、何かの参考になるかもしれません。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpiis/iishelp/iis/htm/core/iisiwelc.asp


以上、何かの参考になれば幸いです。
(余計惑わすだけであったなら、申し訳ありません)
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-06 09:46
レスありがとうございます。

MSの情報を見て、デフォルトでできることはかなり限られているので
SSIを許可しても問題ないかなと考えています。

ダミーのマップの機能をつくりこめたらいいとおもってSTDINから読んで
STDOUTに書き出すプログラムや、引数でファイル名をもらってファイル内容
をSTDOUTに書き出すプログラムをかませてみたりしたのですが、うまくいき
ません。

SSI許可が現実的かな、とおもっています。
1

スキルアップ/キャリアアップ(JOB@IT)