Tôi đang sử dụng struts 1.3 cho ứng dụng của mình và tất cả các trang jsp được chuyển tiếp qua bộ điều khiển (lớp hành động). Nhưng nếu tôi truy cập trực tiếp vào trang jsp, tôi có thể truy cập nó. Làm thế nào để ngăn chặn điều này?Từ chối truy cập trực tiếp vào các trang jsp
Trả lời
đặt tất cả jsp-s bên trong thư mục WEB-INF (ví dụ như trong thư mục WEB-INF thư mục/jsp) và không quên để thay đổi bản đồ của bạn liên quan đến vị trí của jsp- của bạn S.
Bạn có thể sử dụng bộ lọc và hạn chế các yêu cầu với url mà yêu cầu trang .jsp và chỉ cho phép các yêu cầu mà yêu cầu .do
Các bộ lọc được sử dụng để bỏ qua hoặc làm gián đoạn các yêu cầu, vì vậy sử dụng các bộ lọc để hạn chế yêu cầu, nếu nó không chứa .do in url. Dưới đây là hướng dẫn tốt cho các bộ lọc
Tôi nghĩ là lựa chọn tốt nhất là nên đưa trang web của bạn trong thư mục WEB-INF - cách mà họ sẽ không được trực tiếp tiếp cận nhưng sau đó trong servlets của bạn, bạn có thể có một cái gì đó như:
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();
}
}
Được lấy từ: http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html
- 1. từ chối truy cập trực tiếp vào tập tin trên S3
- 2. Ngăn chặn truy cập trực tiếp vào trang PHP
- 3. Từ chối truy cập URL trực tiếp vào phương thức hành động
- 4. Truy cập trực tiếp vào TableLayoutPanel Cells
- 5. Hạn chế quyền truy cập trực tiếp vào các trang lỗi
- 6. Truy cập vào các khóa registry bị từ chối (ABCPdf)
- 7. tại sao truy cập vào cổng com bị từ chối?
- 8. RavenDb trên trang web Azure - Truy cập bị từ chối
- 9. Bảo vệ file PHP từ truy cập trực tiếp
- 10. Truy cập bị từ chối vào thư mục Temp ASP.NET
- 11. Truy cập Lỗi bị từ chối truy cập vào nhà cung cấp IIS WMI từ ASP
- 12. Truy cập MongoDB trực tiếp qua JavaScript
- 13. Làm cách nào để từ chối tập lệnh truy cập của người dùng trực tiếp trong URL
- 14. "Truy cập vào đường dẫn ... bị từ chối" (.NET C#)
- 15. .htaccess từ chối truy cập vào các tệp cụ thể? nhiều hơn một
- 16. System.IO.WriteAllBytes - Truy cập vào đường dẫn bị từ chối lỗi
- 17. IIS7 403 - Truy cập bị từ chối
- 18. ASP.NET + Quyền truy cập vào đường dẫn bị từ chối
- 19. Truy cập vào đường dẫn **** bị từ chối
- 20. Apache RewriteMap được sử dụng để ngăn truy cập trực tiếp vào các tệp
- 21. Tôi có thể trực tiếp truy cập vào mô-đun không đổi từ HTML theo AngularJS
- 22. struts2 truy cập enum từ JSP
- 23. Process.MainModule -> "Truy cập bị từ chối"
- 24. Truy cập tệp bị từ chối
- 25. bảng xóa - truy cập bị từ chối
- 26. java.security.AccessControlException: Truy cập bị từ chối (java.io.FilePermission
- 27. System.ComponentModel.Win32Exception: Truy cập bị từ chối Lỗi
- 28. Process.Kill() Truy cập bị từ chối
- 29. SUBINACL bị truy cập bị từ chối
- 30. Quyền truy cập thường xuyên bị từ chối vào các tệp ASP.NET tạm thời
+1 - Ẩn WEB-INF là phương pháp được sử dụng phổ biến nhất. Nếu bạn đọc tài liệu và ví dụ, họ thường sử dụng thiết lập này. – pap