Có thể tắt jsessionid trong url trong tomcat không? jsessionid dường như không quá thân thiện với công cụ tìm kiếm.Có thể tắt jsessionid trong servlet tomcat không?
Trả lời
Bạn có thể tắt chỉ cho các công cụ tìm kiếm bằng bộ lọc này, nhưng tôi khuyên bạn nên sử dụng cho tất cả các phản hồi vì nó tồi tệ hơn công cụ tìm kiếm không thân thiện. Nó cho thấy ID phiên có thể được sử dụng cho một số khai thác bảo mật nhất định (more info).
Tomcat 6 (pre 6.0.30)
Bạn có thể sử dụng tuckey rewrite filter.
Example config cho Tuckey lọc:
<outbound-rule encodefirst="true">
<name>Strip URL Session ID's</name>
<from>^(.*?)(?:\;jsessionid=[^\?#]*)?(\?[^#]*)?(#.*)?$</from>
<to>$1$2$3</to>
</outbound-rule>
Tomcat 6 (6.0.30 trở đi)
Bạn có thể sử dụng disableURLRewriting trong cấu hình bối cảnh để vô hiệu hóa hành vi này.
Tomcat 7 và Tomcat 8
Từ Tomcat 7 onwards bạn có thể thêm như sau trong cấu hình phiên.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Sử dụng một Filter
trên tất cả các URL kết thúc tốt đẹp response
trong một HttpServletResponseWrapper
mà chỉ đơn giản trả về URL không thay đổi so encodeRedirectUrl
, encodeRedirectURL
, encodeUrl
và encodeURL
.
Mã mẫu có sẵn tại đây: http://randomcoder.com/articles/jsessionid-considered-harmful Máy chủ có thể ngừng hoạt động; Tôi đã phải lấy nó ra khỏi bộ nhớ cache của Google. –
Tôi thích phương pháp này. – vsingh
Trích từ câu trả lời của Pool:
Bạn có thể sử dụng bộ lọc tuckey viết lại.
Bạn có thể vô hiệu hóa chỉ tìm kiếm động cơ sử dụng bộ lọc này, nhưng tôi muốn tư vấn sử dụng nó cho tất cả các phản ứng như nó tồi tệ hơn chỉ search engine không thân thiện. Nó cho thấy ID phiên có thể được sử dụng để bảo mật nhất định khai thác (thông tin thêm).
Điều đáng nói là điều này sẽ vẫn cho phép xử lý phiên dựa trên cookie ngay cả khi jsessionid không hiển thị nữa. (được lấy từ bài khác của anh ấy: Can I turn off the HttpSession in web.xml?)
PS. Tôi không có đủ danh tiếng để bình luận, nếu không tôi sẽ thêm điều này vào bài viết của anh ta ở trên làm bình luận.
Ngoài ra nếu bạn có Apache ở phía trước Tomcat, bạn có thể loại bỏ jsession bằng bộ lọc mod_rewrite.
Thêm phần sau vào cấu hình apache của bạn.
#Fix up tomcat jsession appending rule issue
RewriteRule ^/(.*);jsessionid=(.*) /$1 [R=301,L]
Điều này sẽ chuyển hướng 301 đến trang không có suy nghĩ. Rõ ràng điều này sẽ hoàn toàn vô hiệu hóa url jsessionid nhưng đây là những gì tôi cần.
Chúc mừng, Đánh dấu
Theo mặc định, các tập tin cookie được kích hoạt trong máy chủ Tomcat (bạn rõ ràng có thể cài đặt nó bằng cách sử dụng các tập tin cookie = true trong yếu tố server.xml). Bật cookie có nghĩa là jsessionID sẽ không được thêm vào URL vì phiên sẽ được quản lý bằng cookie. Tuy nhiên, ngay cả sau khi cookie được bật, jsessionID được nối vào URL cho yêu cầu đầu tiên vì máy chủ web không biết ở giai đoạn đó nếu cookie đã được bật. Để loại bỏ jsessionIDs như vậy, bạn có thể sử dụng quy tắc viết lại tuckey:
Bạn có thể tìm thêm thông tin về vấn đề này tại http://javatechworld.blogspot.com/2011/01/how-to-remove-jsessionid-from-url-java.html
<outbound-rule encodefirst="true">
<note>Remove jsessionid from embedded urls - for urls WITH query parameters</note>
<from>^/(.*);jsessionid=.*[?](.*)$</from>
<to encode="false">/$1?$2</to>
</outbound-rule>
<outbound-rule encodefirst="true">
<note>Remove jsessionid from embedded urls - for urls WITHOUT query parameters</note>
<from>^/(.*);jsessionid=.*[^?]$</from>
<to encode="false">/$1</to>
</outbound-rule>
Bạn có thể tìm thêm thông tin về vấn đề này tại http://javatechworld.blogspot.com/2011/01/how-to-remove-jsessionid-from-url-java.html
Lưu ý rằng trình duyệt web vẫn cần bật cookie. – BalusC
Có thể làm này trong Tomcat 6.0 với: disableURLRewriting
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
ví dụ:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="PATH_TO_WEBAPP" path="/CONTEXT" disableURLRewriting="true">
</Context>
Trong Tomcat 7.0, điều này được kiểm soát như sau trong một ứng dụng: ServletContext.setSessionTrackingModes()
Tomcat 7.0 sau các Servlet 3.0 thông số kỹ thuật.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Tomcat 7 và Tomcat 8 hỗ trợ cấu hình ở trên trong web.xml ứng dụng web của bạn, tắt các phiên dựa trên URL.
Đừng quên sử dụng web-app_3.0 xsd:
Trong Tomcat 6.0 bạn có thể sử dụng disableURLRewriting = "true" vào context.xml từ đường dẫn/config của bạn trong bản cài đặt tomcat.
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
tập tin context.xml
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context disableURLRewriting="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
</Context>
...
Bây giờ đầu ra tomcat đó là công cụ tìm kiếm thân thiện với người ...
Thưởng thức
- 1. Cookie JSESSIONID có ngày hết hạn trong Tomcat
- 2. Tomcat không tắt trong Eclipse
- 3. Vô hiệu hóa jsessionid qua tiêu đề http (cookie) trong Tomcat 7
- 4. Tomcat 7 - Cookie JSESSIONID không thể truy cập được từ mã JavaScript
- 5. Buộc Tomcat sử dụng cookie JSESSIONID an toàn qua http
- 6. Servlet Mappings với Biến (Tomcat 7.0)
- 7. Di jsessionid từ URL
- 8. Servlet 3 Nhiệm vụ không đồng bộ trên Tomcat 7
- 9. Cách thiết lập servlet gốc trong Tomcat 6?
- 10. Ánh xạ URL trong Tomcat tới servlet FrontController
- 11. Chrome và JSESSIONID
- 12. Tomcat không thể tìm thấy Servlet của tôi và đang ném ngoại lệ, nhưng tại sao?
- 13. Chúng ta có thể gọi một servlet mà không <servlet-mapping> trong mục web.xml
- 14. Dừng hẹn giờ khi tắt máy tomcat
- 15. xóa jsessionid trong url
- 16. Có thể tắt stderr trong C++ không?
- 17. Bạn có thể gọi một servlet có liên kết không?
- 18. IntelliJ Idea: Triển khai một servlet Java đơn giản (không có JSP) tới Tomcat 7
- 19. không thể giải quyết biểu tượng 'servlet'
- 20. Đăng nhập HTTPS không lưu JSESSIONID trong cookie
- 21. Truy cập Đường dẫn ngữ cảnh Tomcat từ Servlet
- 22. Tomcat: cách truy cập (phiên) Người quản lý từ servlet
- 23. Tomcat 7.0.29 vấn đề bộ nạp lớp servlet-api
- 24. Theo Tomcat java.lang.NoClassDefFoundError khi truy cập một servlet?
- 25. Node.js có thể chạy trong máy chủ Tomcat không?
- 26. Tắt máy Tomcat RẤT chậm sau khi gọi tắt máy.
- 27. validateJarFile (servlet-api.jar) - jar không được tải trong tomcat bằng cách sử dụng eclipse
- 28. Máy chủ Tomcat sẽ không khởi động trong nhật thực do servlet
- 29. Tomcat 7 - Servlet 3.0: không hợp lệ thẻ byte trong hồ bơi liên tục
- 30. Không thể khởi động Tomcat 7.0 trong Eclipse Indigo
Tại sao sử dụng một Ổ ghi khi bạn chỉ có thể không tạo cookie phiên? –
Vui lòng xem ngày cho câu trả lời này. Tomcat 7 và tính năng theo dõi chế độ không có sẵn trong năm 2009. Cập nhật với mỗi thông tin phiên bản ngay bây giờ. – Pool
Tomcat 6 hỗ trợ thuộc tính 'disableURLRewriting' trên phần tử Context. Xem http://tomcat.apache.org/tomcat-6.0-doc/config/context.html –