Tomcat で Struts2+Spring+Hibernate を使用しています。
ユーザーが .jsp または .action URL を直接入力できるという問題があります。アクセスする必要があるものはすべてホームページからアクセスできるため、このアクセスをブロックしたいと考えています。
私は答えを探していましたが、特に .jsp ブロッキングに関連するものをいくつか見つけました。私は追加しました
<security-constraint>
<web-resource-collection>
<web-resource-name>Deny Direct Access</web-resource-name>
<description></description>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Denied</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>Denied</role-name>
</security-role>
私のweb.xmlにですが、それは何もしないようです。それから私は変わりました
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
に
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
一部の .jsp ファイルをブロックしますが、他のファイルはブロックしません。入れないようにしました
<url-pattern>*.jsp</url-pattern>
私のセキュリティロールのいずれかで。
すべての jsps を /Web-inf に配置できると聞いたことがありますが、参照するアプリケーションのすべてのインスタンスでパスを変更する必要があるため、これは非常に面倒なようです。
また、.action クラスへの直接アクセスをブロックすることに関するものも見つかりません。この情報を見つけるために私が指摘できる人がいるなら、それは大歓迎です. ありがとう。