最近開始需要比較頻繁的往Tomcat中仔細(xì)研究部署Web應(yīng)用, 其中一種是通過訪問http://localhost:8080/manager/html
Manager web應(yīng)用.
在$CATALINA_BASE/conf/tomcat-users.xml
定義<user>
時(shí), 有的文章把管理員("Manager")的4種角色("role")全配置上了, 而有的僅配置了2個(gè), 不知孰對(duì)孰錯(cuò), 于是在官網(wǎng)上查了doc, 下面簡(jiǎn)單歸納下:
Tomcat在web.xml
文件里定義了4種管理員角色, 分別是:
manager-gui -- 可訪問HTML接口.
manager-status -- 僅可訪問服務(wù)器狀態(tài)("Server Status")頁(yè)面(網(wǎng)上查到的是它與前者配合共同使用)
manager-script -- 可訪問
web.xml
文檔里提到的工具友好的普通文本("tools-friendly plain text")接口(猜測(cè)應(yīng)該是SSI和CGI), 并可訪問服務(wù)器狀態(tài)頁(yè)面manager-jmx -- 可訪問JMX代理接口和服務(wù)器狀態(tài)頁(yè)面
隨后, 官方專門提及了一種網(wǎng)絡(luò)攻擊手段, CSRF(Cross-Site Request Forgery)attacks, 即: 跨站請(qǐng)求偽裝, 它能篡改用戶信息, 可參看維基上的解釋Cross-site request forgery.
官方拍胸脯說了, HTML接口是受保護(hù)的, 不怕CSRF攻擊的, 但文本("text")和JMX接口是不受保護(hù), 存在被攻擊風(fēng)險(xiǎn)的. 換句話說, manager-gui角色的管理員是安全的, 而manager-status和manager-script是危險(xiǎn)的.
為此,官方特別提醒 :
第一, 當(dāng)使用manager-script或manager-jxm角色訪問Manager應(yīng)用管理時(shí)(比如測(cè)試普通文本和JMX接口), 你一定要在結(jié)束管理會(huì)話后關(guān)閉瀏覽器的所有窗口. 如果你不關(guān)閉瀏覽器, 再去瀏覽其他頁(yè)面, 那么你很可能成為CSRF攻擊的受害者.
第二, 強(qiáng)烈建議不要給manager-gui角色授予manager-script或manager-jmx角色.
另外, 由于JMX代理接口屬于較底層的接口, 別有用心的人可以利用它的命令做很多事, 所以當(dāng)你啟用manager-jmx角色時(shí)一定要小心些.
官網(wǎng)中很多例子都是使用的文本接口, 所以用的是manager-script角色.
總結(jié)下:
不要將manager-gui角色與manager-script或manager-jmx任一角色混合使用.
在使用manager-script或manager-jmx, 在結(jié)束管理會(huì)話時(shí), 必須要關(guān)閉瀏覽器的窗口, 避免被CSRF攻擊.
manager-jmx是較為底層的接口, 容易被別有用心的人利用, 使用的時(shí)候一定要留心(沒有這方面需求, 就別給
<user>
授予該角色了.)
完.