2011-10-25 27 views
6

Tôi hiện đang phát triển trang web cho nơi ẩn náu của phụ nữ. Vì đây là thông tin rất nhạy cảm đối với những người sử dụng trang web, tôi muốn ngăn trình duyệt lưu trữ bất kỳ lịch sử nào về lượt truy cập của họ. Điều này có thể sử dụng một cái gì đó giống như API lịch sử HTML5 không? Lý tưởng nhất nó sẽ làm việc trong IE6 + quá vì có rất nhiều người sử dụng phiên bản cũ của IE.Dừng các trình duyệt lưu trữ lịch sử của một lần truy cập

Tôi biết các trình duyệt có chế độ Duyệt web riêng tư, nhưng hầu hết mọi người không biết về chúng, vì vậy một số cách tự động sẽ là tốt nhất.

Một giải pháp tiềm năng (mặc dù ít được ưu tiên hơn) là nhắc mọi người sử dụng chế độ Duyệt web riêng tư nếu họ hiện không làm như vậy. Có thể phát hiện điều này thông qua JavaScript không?

EDIT: Tôi đã chấp nhận câu trả lời của Virgil vì giáo dục là lựa chọn tốt nhất vì họ có thể cần phải áp dụng những gì họ đã học được cho các trang web khác. Tôi cũng đã sử dụng số location.replace của Joseph trên nút ẩn lượt truy cập của tôi để nút này vô hiệu hóa nút quay lại.

Một điều thú vị cần lưu ý là tôi đã thử sử dụng history.replace trên tất cả các liên kết trên trang web cho rằng điều này sẽ thay thế tất cả lịch sử trình duyệt nghĩa là chỉ xem trang cuối được ghi nhớ. Tuy nhiên mở bảng lịch sử trong Firefox - không được thử nghiệm trong các trình duyệt khác - vẫn hiển thị nhật ký của mọi trang được xem, chúng không thể truy cập được qua nút quay lại.

Vì vậy, đối với bất kỳ ai có truy vấn tương tự, tôi muốn nhắc lại rằng giáo dục người dùng là bước đầu tiên trong việc bảo vệ họ. Cảm ơn tất cả mọi người cho bạn lời khuyên.

Trân

Ric

+1

Hữu ích: http://stackoverflow.com/questions/2860879/detecting-if-a-browser-is-using-private-browsing-mode – Konerak

+0

Suy nghĩ tốt và chúc bạn may mắn! –

+0

một giải pháp là có một số đối tác vô hại hữu ích tải trang của bạn lên kiểu AJAX, hoặc bằng proxy, v.v. khiến người dùng thứ hai không thể truy cập lại. Có thể tạo liên kết một lần chuyển hướng đến trang web của bạn qua proxy, sau đó có liên kết một lần bị hủy hoặc trỏ đến nơi khác. –

Trả lời

3

Rất tiếc, điều này là không thể. Hành động của người dùng sẽ phải được thực hiện để xóa lịch sử của họ. Tôi khuyên bạn nên đưa ra cảnh báo để phụ nữ có thể xóa lịch sử của họ và bạn có thể bao gồm hướng dẫn cho mọi trình duyệt chính. Liên quan đến HTML5 và JavaScript, điều này sẽ không thể thực hiện được trong IE6 vì nó không hỗ trợ HTML5.

+0

= 1 cho câu trả lời này từ tôi. Bạn có thể đặt trong nhiều hack khác nhau mà sẽ che khuất lịch sử có lẽ nhưng bạn sẽ tốt hơn nhiều trong việc giáo dục người dùng của bạn. Bằng cách này, họ sẽ có sự lựa chọn nếu họ muốn xóa lịch sử hay không. Một số người có thể muốn sử dụng lịch sử của họ sau khi tất cả. –

+0

Bạn có thể làm cho nó dễ dàng hơn cho họ mặc dù: một tên miền không nghi ngờ, chỉ một lần truy cập trang và phần còn lại tính phí bằng AJAX (chỉ có một dòng lịch sử để xóa thay vì 50), không có cookie, không đăng ký e-mail, nút hoảng loạn , video hướng dẫn ... – Konerak

+0

@LeeTheobald, Virgil, chúng tôi là một vài nút lớn trên trang web để nói với mọi người ho sử dụng chế độ duyệt web riêng tư và nút hoảng loạn. Họ có một hoạt hình hơi khó hiểu để thu hút sự chú ý của người dùng nhưng tôi nghĩ rằng lợi ích của họ vượt quá những mối quan tâm về phong cách! Cảm ơn vì lời khuyên. –

0

Vâng, mặc dù tôi không nghĩ rằng bạn có thể "ép" người dùng sử dụng private browsing, bạn có thể cung cấp cho họ mọi cơ hội để tránh lịch sử.

Ví dụ: có trang web cố gắng lưu trữ cookie (cả từ máy chủ và sử dụng ngôn ngữ như javascript). Nếu sau đó máy chủ có thể phát hiện lại cookie trong lần truy cập tiếp theo, chuyển hướng chúng đến "Sử dụng duyệt web riêng tư [và đây là cách] hoặc tự mình tiến hành" loại trang đích ".

Đó là cách duy nhất xung quanh nó.

Tôi, tất nhiên, cũng sẽ triển khai SSL, nhưng tôi nghĩ điều này được ngụ ý nhiều hơn.

3

Một cách để làm điều đó là làm cho tất cả điều hướng đi độc quyền thông qua javascript bằng cách sử dụng locarion.replace (url). Điều này không lưu trạng thái lịch sử nhưng cũng có nghĩa là người dùng cũng không thể sử dụng dấu trang. Đối với một liên kết, nó sẽ tương tự như sau

<a href="javascript:location.replace(location.host + '/wherever.html')" href="wherever.html">wherever</a> 

Hoặc

<a href="#" onclick="location.replace(location.host + 'wherever.html'); return false;">wherever</a> 

hoặc tương đương.

+0

Người phối ngẫu tò mò sẽ thực sự không nhìn thấy abuserefuge.org, nhưng somesite.org - nhưng khi anh ta đến thăm trang web để kiểm tra nó, anh ta vẫn sẽ thấy nó là gì. – Konerak

+0

Cảm ơn, tôi sẽ xem xét việc thực hiện điều này và xem nó hoạt động như thế nào. –

-4

Giải pháp không sử dụng HTTPS? Tôi khá chắc chắn rằng các trình duyệt không lưu trữ lịch sử cho các trang web đó.

+1

Điều đó không đúng. Các trình duyệt được tự do lưu trữ lịch sử bất kể HTTPS có được sử dụng hay không và thực sự làm như vậy. –

Các vấn đề liên quan