Tomcat は、Java Community Process を通じて Sun が開発した、広く使用されているサーブレットおよび JavaServer Page (JSP) テクノロジの公式リファレンス実装である HTTP サーバーです。サーブレットと JSP テクノロジは、HTTP サーバー アプリケーションの構築に使用されます。サーブレット テクノロジには、アクセス セキュリティ、セッション管理、スレッド制御など、多くの機能が追加されています。 JSP テクノロジーは、動的に生成された HTML ページを処理する簡単な方法を提供します。これらの HTML ページは、実行時間を短縮するためにサーブレットに直接コンパイルされます。セキュリティを確保するための上記の 2 つのテクノロジに加えて、Tomcat パラメータを構成してセキュリティを強化することもできます。 セキュリティ設定: 1. webappsディレクトリ内のすべてのファイルを削除し、tomcat管理インターフェースを無効にします。
2. tomcat-users.xml ファイル内のすべてのユーザー権限をコメント化または削除します。 3. バージョン情報を非表示にしてconf/server.xmlを変更する 3. ユーザーの質問: nginx と httpd は、ルート ユーザーを使用してポート 80 のガードを開始し、子プロセス/スレッドは setuid() および setgid() 関数を通じて通常のユーザーに切り替わります。つまり、親プロセスの所有者は root ユーザーであり、子プロセスとマルチスレッドの所有者は非 root ユーザーです。このユーザーにはシェルがなく、ssh およびコンソール経由でシステムにログインすることはできません。 Tomcat の起動にのみ使用できるユーザーを作成します。
ポートマッピングを作成し、ポート80にアクセスするときにポート8080を呼び出す
リダイレクトをキャンセル:
4. 戦争の自動展開をオフにする vim conf/server.xml 5. 404 に表示されるバージョン情報を非表示にします。 lib 内の catalina.jar を解凍し、jar xf catalina.jar を実行します。
6. tomcatのシャットダウンコマンドを変更する Tomcat インスタンスを直接シャットダウンできる管理ポートは、server.xml で定義されます。 Telnet 経由でポートに接続した後、SHUTDOWN (デフォルトのシャットダウン コマンド) を入力して Tomcat インスタンスをシャットダウンできます (この時点でインスタンスはシャットダウンされますが、プロセスはまだ存在することに注意してください)。 Tomcat のポートはデフォルトで閉じられるため、手順は非常に簡単です。デフォルトのポートは 8005 で、コマンドは SHUTDOWN です。 close コマンドをもう少し複雑に変更する必要があります。 またはポート8005を無効にする
7. tomcatとプロジェクトユーザーを分ける Tomcat が Web シェル プログラムに埋め込まれるのを防ぐには、プロジェクト ファイルを変更します。したがって、Tomcat をプロジェクト所有者から分離して、ハッキングされた場合でもプロジェクト ファイルを作成および編集できないようにする必要があります。 8. conf/web.xmlに次の設定を追加します。 9. カスタムエラーページ web.xml は特定のアプリケーションの下にあり、このアプリケーションの 404 を処理する必要があります。ただし、http://localhost/ は tomcat 独自のアプリケーションにアクセスするため、web.xml 構成は webapp/Root/ の下のアプリケーション内に構成する必要があります。 webappsディレクトリにerror.jspファイルを作成します。 <%@ ページコンテンツタイプ="text/html; charset=UTF-8" %> <%@ ページインポート="java.io.*" %> <%@ ページインポート="java.util.*" %> <html> <ヘッダー> <title>404 ページ</title> <本文> <前> <% 列挙<文字列> attributeNames = request.getAttributeNames(); (attributeNames.hasMoreElements()) の間 { 文字列 attributeName = attributeNames.nextElement(); オブジェクト属性 = request.getAttribute(attributeName); out.println("request.attribute['" + attributeName + "'] = " + attribute); } %> </pre> exception.jsp ファイル <%@ ページ contentType="text/html; charset=UTF-8" isErrorPage="true" %> <%@ ページインポート="java.io.*" %> <html> <ヘッダー> <title>例外ページ</title> <本文> <hr/> <前> <% response.getWriter().println("例外: " + 例外); if(例外 != null) { response.getWriter().println("<pre>"); 例外.printStackTrace(response.getWriter()); レスポンスのgetWriter().println("</pre>"); } 回答 e.getWriter().println("<hr/>"); %> ブラウザでカスタム エラー ページをテストします。 セッションタイムアウトを定義し、ディレクトリリストを禁止する さて、この記事はこれで終わりです。お役に立てれば幸いです。 以下もご興味があるかもしれません:
|
<<: プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装
>>: MySQL データベースの型変換のための CAST 関数と CONVERT 関数の説明
目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...
1 背景JDK1.8-u181とTomcat8.5.53がインストールされました。インストール後、環...
長い間 MySQL を使ってきたので、SQL 文はすでに覚えていると思います。そこで、その実行原理を...
序文Tomcat は、無数のチューニング オプションを備えた、広く使用されている Java Web ...
1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...
概要MySQL データベースで主キーのないテーブルを表示するための SQL ステートメントをいくつか...
Msyqlデータベースのインストール、参考までに具体的な内容は次のとおりです。 ①ブラウザでhttp...
ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...
この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...
HTML では、<、>、& などは特別な意味を持ち (<、> はリン...
目次1. インストール2.APi 3. react-beautiful-dnddemo 3.1dem...
目次Prometheusはエクスポーターを介してMySQLを監視し、Grafanaチャートで表示しま...
目次序文:特定の操作ステップ1: プレハブを準備するステップ2: オブジェクトプールを初期化するステ...
1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...
目次例方法1: 削除方法2: 分解補充する要約するThinking シリーズは、10 分で実用的なプ...