したがって、JavaとJSPを使用してWebサイトを作成していて、それを作成した言語をユーザーに知られたくない場合は、どのような手法を使用しますか?
6 に答える
Struts2 のようなある種のフレームワークを使用している場合は、ディスパッチャ サーブレットにマッピングされた拡張子 (*.action または選択したもの) があります。ディスパッチャは、WEB-INF ディレクトリにある JSP にリクエストを「転送」します。ユーザーは、サーブレットに向けられた URL だけを見て、HTML を取得します。テンプレート言語が何であったかはわかりません。サーブレット マッピングには好きなものを選択できるため、何かを作成したり、".php" や ".asp" などで間違った方向に誘導したりすることさえできます。
もちろん、WEB-INF ではなく、Web アプリ ディレクトリに JSP を配置することもできます。これらに別の拡張子を付けて、web.xml で偽の拡張子を指定<jsp-property-group>
する要素を使用してを作成することにより、JSP として処理するようにコンテナに指示できます。url-pattern
また、コンテナーのドキュメントを調べて、送信される可能性のあるサーバーのバージョン情報を非表示にする方法を決定する必要があります。もう 1 つ調べる必要があるのは、セッション Cookie 名を「jsessionid」以外の名前に変更する方法です。これはちょっとした問題ですが、これはサーブレット仕様の一部であり、一部のコンテナーでは変更がサポートされていません。
ここでの他の回答とともに、アプリケーションエラーを正しく処理していることを確認する必要があります。例外を出してWebコンテナがそれを処理する場合、何を使用しているかはかなり明白になります。
私がする唯一のことは、拡張機能(jsp、aspx、aspなど)のないページにリクエストを渡す方法です。これは、リクエストURLを手動で解析することで実行できます。また、サーバーを再構成して、サーバーの詳細を非表示にします。
1)独自のファイル拡張子を作成し、それを選択したハンドラーにマップするようにサーバーを構成します。たとえば、.wheeを再マップして、ASP.NETハンドラーまたはPHPハンドラーを呼び出します。
2)使用しているハンドラーが、ほとんどの場合と同様に、それが何であるかを示すヘッダーを挿入しないようにしてください。含まれている場合は、送信しないように構成するか、スタック内のその前に何かを配置して、送信する前にそれらのヘッダーを削除します。
また、アプリが送り返す HTTP 応答ヘッダーも検査する必要があります。多くの場合、応答ヘッダーでアプリを強化するテクノロジーを見つけるのは簡単なことではありません。
Apache 構成ファイルでは、次の行により、.php が PHP スクリプトとして認識され、実行されます。
AddHandler php5-script .php
これを .asp に変更すると、Apache は .asp ファイルを PHP スクリプトとして認識します。たとえば、.blarg に変更すると、Apache は .blarg ファイルを PHP スクリプトとして認識します。