Запретить прямой доступ к файлу .css - PullRequest
1 голос
/ 31 декабря 2011

Я занимаюсь разработкой веб-проекта на Java EE с использованием JBoss 5. В моей папке WebContent есть файл .css, используемый всеми JSP (помещенными в другие подпапки WebContent). Я хочу запретить прямой доступ к файлу .css, но все же смогу использовать его в моих JSP. Я пробовал с

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Direct access to .css forbidden</web-resource-name>
    <url-pattern>/Style.css</url-pattern>
  </web-resource-collection>
  <auth-constraint/>
</security-constraint>

в дескрипторе web.xml, но JSP не могут его использовать.

Есть идеи?

1 Ответ

5 голосов
/ 31 декабря 2011

Любая попытка скрыть CSS, используемый на странице от конечного пользователя, абсолютно бессмысленна.

Вы можете проверить заголовок HTTP_REFERER и не отображать CSS, если он не соответствует странице, котораявстроенная таблица стилей.

Но даже это не поможет в современных браузерах, где CSS отображается в инспекторе DOM и активируется при правильном наборе реферера.

Браузер должен видетьCSS для его рендеринга, следовательно, нет меры защиты, которая поможет.Лучшее, что вы можете сделать (но для этого нужно изменить HTML-код), это запутать CSS, чтобы больше не было разборчивых имен элементов (например, .xweudhd вместо .top_navigation).

Но я бы отбросилидея в целом.Есть более продуктивные способы провести время.

...