Używam rozpórki 1.3 dla mojej aplikacji i wszystkie strony jsp są przekazywane za pośrednictwem kontrolera (klasy działania). Ale jeśli mam bezpośredni dostęp do strony jsp, jestem w stanie uzyskać do niej dostęp. Jak mogę temu zapobiec?Odmowa bezpośredniego dostępu do stron JSP
Odpowiedz
umieścić wszystkie swoje JSP-y wewnątrz folderu WEB-INF (na przykład w folderze WEB-INF/JSP) i nie zapomnij, aby zmienić mapowanie dotyczące lokalizacji jsp- s.
Można użyć filtrów i ograniczyć żądania z adresem URL, który prosić stron .jsp i tylko pozwalają wnioski, które proszą o uruchamiać
Filtry służą do obejścia lub przerwania żądania, więc korzystać z filtrów, aby ograniczyć możliwość Żądanie, jeśli nie zawiera .do w adresie URL. Poniżej znajduje się dobry poradnik dla filtrów
Myślę, że najlepszym rozwiązaniem byłoby, aby umieścić swoje strony internetowe w katalogu WEB-INF - w ten sposób nie będą one dostępne bezpośrednio, ale potem w swoich serwletów można mieć coś takiego:
public class ControllerServlet extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userPath = request.getServletPath();
// if category page is requested
if (userPath.equals("/category")) {
// TODO: Implement category request
// if cart page is requested
} else if (userPath.equals("/viewCart")) {
// TODO: Implement cart page request
userPath = "/cart";
// if checkout page is requested
} else if (userPath.equals("/checkout")) {
// TODO: Implement checkout page request
// if user switches language
} else if (userPath.equals("/chooseLanguage")) {
// TODO: Implement language request
}
// use RequestDispatcher to forward request internally
String url = "/WEB-INF/view" + userPath + ".jsp";
try {
request.getRequestDispatcher(url).forward(request, response);
} catch (Exception ex) {
ex.printStackTrace();
}
}
Zaczerpnięte z: http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html
- 1. Odmowa dostępu do pliku file_put_contents
- 2. stoły do spłukiwania - odmowa dostępu
- 3. IIS7 403 - Odmowa dostępu
- 4. Odmowa dostępu java.io.FileNotFoundException
- 5. Utgard - odmowa dostępu
- 6. Odmowa dostępu na kopii
- 7. Process.Kill() Odmowa dostępu
- 8. java.security.AccessControlException: Odmowa dostępu (java.io.FilePermission
- 9. System.ComponentModel.Win32Exception: odmowa dostępu Błąd
- 10. Używanie self-> ivar do bezpośredniego dostępu do zmiennych instancji
- 11. Odmowa dostępu do drukarki sieciowej w PrintDialog
- 12. Nie można zatwierdzić do svn - odmowa dostępu
- 13. System.UnauthorizedAccessException: odmowa dostępu do ścieżki VS2013
- 14. "NS_ERROR_DOM_BAD_URI: Odmowa dostępu do zastrzeżonego URI"
- 15. Odmowa dostępu do projektu za pomocą Eclipse
- 16. Odmowa dostępu S3 z spinaczem
- 17. Dlaczego nie należy uzyskiwać bezpośredniego dostępu do pól __m128i?
- 18. Błąd SSIS: 0xC00160AE - odmowa dostępu
- 19. remove .git/index.lock ': Odmowa dostępu
- 20. Azure klucz sklepienia: odmowa dostępu
- 21. php/pdo/msql - odmowa dostępu
- 22. 403 - Odmowa dostępu po uwierzytelnieniu
- 23. mysqlimport: Błąd: 1045, odmowa dostępu
- 24. Przywróć kopię zapasową Odmowa dostępu
- 25. Odmowa dostępu podczas instalacji Yo
- 26. Unikaj dostępu do stron administracyjnych w AngularJS
- 27. Struts2 dostępu enum z JSP
- 28. Odmowa dostępu do wszystkich folderów za wyjątkiem nielicznych użyciu htaccess
- 29. Odmowa dostępu do Python Anywhere do bazy danych MySQL
- 30. Jak ustawić wersję JDK do kompilowania stron JSP?
+1 - ukrywanie WEB-INF jest najczęściej stosowaną metodą. Jeśli czytasz dokumenty i przykłady, często używają tej konfiguracji. – pap