Мне нужно регистрировать URL-адреса, которые ссылаются на мой сайт в Java Servlet.HttpServletRequest - как получить ссылочный URL?
ответ
Доступно в HTTP referer
header. Вы можете получить его в сервлет следующим образом:
String referrer = request.getHeader("referer"); // Yes, with the legendary misspelling.
Вы, однако, должны понимать, что это клиент-контролируемое значение и, таким образом, может быть подделан к чему-то совершенно другой, или даже удалить. Таким образом, независимо от того, какое значение оно возвращает, вы не должны использовать его для каких-либо критических бизнес-процессов в бэкэнд, но только для управления презентацией (например, скрытия/отображения/изменения некоторых частей чистого макета) и/или статистики.
Для интересующихся, фон о орфографии можно найти в Wikipedia.
URL-адреса передаются в запросе: request.getRequestURL()
.
Если вы имеете в виду другие сайты, которые ссылаются на вас? Вы хотите, чтобы захватить HTTP Referrer, который вы можете сделать по телефону:
request.getHeader("referer");
На самом деле это: request.getHeader("Referer")
, или даже лучше, и быть 100% уверены, request.getHeader(HttpHeaders.REFERER)
, где HttpHeaders является com.google.common.net.HttpHeaders
Из документов API Java EE для метода ['getHeader (String name)'] (http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader (java. lang.String)) (quote): '" Имя заголовка нечувствительно к регистру. "' – informatik01
переместить в любом случае для ссылки HttpHeaders. Apache HTTP еще один хороший: 'org.apache.http.HttpHeaders' – Barett
Как все уже упоминали, что это
request.getHeader("referer");
Я хотел бы добавить некоторые подробности о аспекте безопасности referar Заголовок в отличие от принятого ответа. В Open Web Application Security Project (OWASP) чит-листы под Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet упоминается о важности referer header.
Что еще более важно для этого рекомендуется Проверка того же происхождения, некоторые заголовки HTTP-запросов не могут быть установлены JavaScript, поскольку они находятся в списке запрещенных заголовков. Только сами браузеры могут устанавливать значения для этих заголовков, делая их более надежными, потому что даже не может быть использована уязвимость XSS для их изменения.
Исходная проверка источника, рекомендованная здесь, основана на трех из этих защищенных заголовков: Origin, Referer и Host, что делает его довольно сильным CSRF-защитой.
Вы можете сослаться на Forbidden header list here. Пользовательский агент (т. Е. Браузер) имеет полный контроль над этими заголовками, а не пользователем.
- 1. Как получить URL запроса от HttpServletRequest
- 2. HTTPServletRequest получение запроса URL
- 3. получить список исходных URL-адресов от HttpServletRequest
- 4. Замените URL-адрес HttpServletRequest
- 5. Как получить полный URL-адрес, который содержит # от HttpServletRequest
- 6. Jtwig Как получить HttpSession/HttpServletRequest?
- 7. Должен ли rvalue ссылочный ссылочный ссылочный ссылочный ссылочный номер rvalue?
- 8. Как получить ссылочный счет NSObject?
- 9. Как получить ссылочный счет PyObject?
- 10. Получить UsernamePasswordCredential из HttpServletRequest
- 11. Jquery как получить атрибут из HttpServletRequest
- 12. Generics - Получить ссылочный тип
- 13. Получить URL-адрес отправителя запроса с помощью HttpServletRequest
- 14. Как получить HttpServletRequest в Liferay WebService
- 15. Получить контроллер назначения из HttpServletRequest
- 16. Получить ссылочный домен из HTML5 Audio Tag Streaming URL
- 17. Получить HttpServletRequest в RequestHandledEvent Spring
- 18. Как получить HttpServletRequest @Context в DropWizard Auth
- 19. Как получить HttpServletRequest в AppservPasswordLoginModule (SSL)
- 20. Как получить HttpServletRequest и HttpServletResponse в FreeMarker?
- 21. Как получить HttpServletRequest в классе viewpreparer
- 22. Как я могу получить HttpServletRequest из ServletContext?
- 23. Как получить httpServletRequest в методе проверки SpringWebFlow
- 24. Как получить HttpServletRequest в моих весенних бобах?
- 25. Как получить HttpServletRequest в инструменте скорости?
- 26. Как получить информацию HttpServletRequest из UserDetailsService
- 27. Как HttpServletRequest работает
- 28. Как получить указатель на ссылочный элемент?
- 29. Как получить ссылочный файл js среди кратных
- 30. Как получить ссылочный номер массива в Java?
Правильно ли я вас понял, что если бы я нашел ваш сайт в google и открыл ссылку, вы зарегистрировали «google.com»? – Roman
@ Roman: правильно! – shane