Безопасность шаблона URL-адреса web.xml

Мне было интересно, будет ли безопасна следующая конфигурация:

Веб-страницы, доступные в местоположениях /ManageXXXX.do, /ManageYYYY.do, ..., должны быть доступны только для роли admin, все остальные страницы доступны всем.

Я настроил файл web.xml следующим образом:

     <security-constraint>
        <web-resource-collection>
            <url-pattern>/Manage*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>    
        </auth-constraint>  
    </security-constraint>

Теперь мне было интересно, насколько это надежно для людей, пытающихся пройти через систему безопасности. Гарантированно ли это заблокирует мои Manage* страницы от неавторизованных пользователей? Я просто хотел бы знать, насколько безопасно такое сопоставление с образцом.


person arnehehe    schedule 23.05.2013    source источник


Ответы (1)


Из спецификации API сервлета: http://www.jcp.org/aboutJava/communityprocess/mrel/jsr154/

SRV.11.2 Specification of Mappings
In the Web application deployment descriptor, the following syntax is used to define
mappings:
• A string beginning with a ‘/’ character and ending with a ‘/*’ suffix is used for path mapping.
• A string beginning with a ‘*.’ prefix is used as an extension mapping.
• A string containing only the ’/’ character indicates the "default" servlet of
the application. In this case the servlet path is the request URI minus the con-
text path and the path info is null.
• All other strings are used for exact matches only.

В соответствии со спецификацией Servlet API шаблон /Manage* — это «только точные совпадения», и это не то, что вам нужно. Пожалуйста, переместите все ресурсы для роли администратора на /Manage/ и настройте шаблон <url-pattern>/Manage/*</url-pattern>

person Michael    schedule 23.05.2013
comment
Странно, потому что то, как я его сейчас настроил, правильно обрабатывает безопасность с помощью шаблона URL, установленного как /Manage* для таких страниц, как /ManageX.do, /ManageY.do и т. д. - person arnehehe; 06.06.2013
comment
Как видите, это копия из спецификации :) Убедитесь, что пользователи без роли администратора не могут получить к ней доступ. - person Michael; 06.06.2013
comment
Я убедился, что пользователи без роли администратора не могут получить доступ ни к одной из страниц /Manage*. - person arnehehe; 06.06.2013
comment
Значит, реализация не соответствует спецификации :) - person Michael; 06.06.2013