Какую тактику я могу использовать, чтобы пользователи не могли узнать, на каком языке написан сайт? - PullRequest
3 голосов
/ 19 апреля 2009

Итак, если вы пишете веб-сайт с использованием Java и JSP и не хотите, чтобы пользователи знали, на каком языке вы его написали. Какие методы вы бы использовали?

Ответы [ 6 ]

5 голосов
/ 19 апреля 2009

Если вы используете какой-то фреймворк, например Struts2, у вас будет расширение (* .action или все, что вы выберете), сопоставленное с сервлетом диспетчера. Диспетчер «перенаправляет» запрос в JSP, который находится в каталоге WEB-INF. Пользователи видят только тот URL, который был направлен на сервлет, и возвращают HTML. Они не могут сказать, какой был язык шаблона. Поскольку вы можете выбрать все, что вам нравится для отображения сервлета, вы можете что-то придумать или даже перенаправить их с помощью чего-то вроде «.php» или «.asp».

Конечно, некоторые JSP могут быть прямо в каталоге веб-приложения, а не в WEB-INF. Вы можете дать им другое расширение и указать контейнеру обрабатывать их как JSP, создав <jsp-property-group> с элементом url-pattern, который задает поддельное расширение в web.xml.

Вам также необходимо изучить документацию вашего контейнера, чтобы определить, как скрыть любую информацию о версии сервера, которая может быть отправлена. Еще одна вещь, которую нужно изучить, - это как изменить имя файла cookie сеанса на что-то отличное от «jsessionid». Это что-то вроде дешевой распродажи, но это часть спецификации Servlet, и некоторые контейнеры не поддерживают ее изменение.

4 голосов
/ 19 апреля 2009

Наряду с другими ответами здесь, вы хотите убедиться, что вы правильно обрабатываете ошибки приложения. Если вы выпустите исключение и веб-контейнер его обработает, то будет совершенно очевидно, что вы используете.

2 голосов
/ 19 апреля 2009

Единственное, что я хотел бы сделать, это как передать запросы на страницы без расширений (jsp, aspx, asp и т. Д.). Это можно сделать, вручную проанализировав URL-адрес запроса. Кроме того, переконфигурируйте свой сервер, чтобы скрыть его детали о том, что это такое.

1 голос
/ 19 апреля 2009

Вы также захотите проверить заголовки ответа HTTP, которые ваше приложение отправляет обратно. Часто бывает просто найти технологию, которая приводит приложение в заголовки ответа.

1 голос
/ 19 апреля 2009

1) Создайте свое собственное расширение файла и настройте свой сервер так, чтобы он соответствовал выбранному вами обработчику. например Переопределите .whee для вызова обработчика ASP.NET или PHP.

2) Убедитесь, что используемый вами обработчик не помещает заголовки, чтобы указать, что это, как это делают большинство. Если это так, сконфигурируйте его, чтобы не делать, или поместите что-то перед ним в стек, чтобы удалить эти заголовки перед передачей.

0 голосов
/ 19 апреля 2009

В файлах конфигурации Apache следующая строка заставляет его распознавать .php как скрипт PHP и выполнять его так:

AddHandler php5-script .php

Измените его на .asp, и Apache распознает файлы .asp как сценарии PHP. Измените его, скажем, на .blarg, и Apache распознает файлы .blarg как сценарии PHP.

...