2008-10-31 21 views
6

Có thể xác định liệu trang web của tôi có đang được truy cập dưới dạng trang web đáng tin cậy không? Trong another question, chúng tôi xác định rằng, nói chung, không thận trọng khi có khả năng hiển thị cho cài đặt trình duyệt IE của khách hàng. Điều này có đủ điều kiện như một ngoại lệ không?Làm cách nào để phát hiện xem IE có truy cập trang web của tôi dưới dạng trang web đáng tin cậy không?

Lý do tôi muốn làm điều này là một số chức năng sẽ không hoạt động trừ khi trang web đang được truy cập dưới dạng trang web đáng tin cậy (ví dụ: sendmail phía máy khách - không hỏi) và tôi muốn để có thể cảnh báo người dùng. Mặc dù có nhiều cảnh báo trong các trang, nhiều người dùng vẫn không đọc, và gửi cho chúng tôi các bản đồ khó chịu. Chúng tôi muốn giảm khối lượng email bằng cách phát hiện tình trạng này và nhấp nháy cảnh báo lớn về cơ bản là "Bạn không đọc cảnh báo và những gì bạn đang cố gắng thực hiện sẽ không hoạt động cho đến khi bạn thay đổi cài đặt của mình! "Mọi ý tưởng đều được chào đón.

EDIT: Trong cửa hàng của chúng tôi, sendmail phía máy khách chỉ hoạt động nếu trang web được tin cậy và tôi không thể thay đổi điều đó do yêu cầu bảo mật cũng như tôi không thể chuyển sang sendmail phía máy chủ. Tuy nhiên, đây không phải là lý do duy nhất mà sendmail phía khách hàng sẽ thất bại, vì vậy tôi không thể chỉ đơn giản là bắt một lỗi sendmail để xác định điều này. Ngoài ra, tôi không muốn điều này làm suy giảm đến một cuộc thảo luận sendmail.

+0

Trước tiên, bạn có thể cung cấp một số mã mẫu cho điều này không? Tôi không thấy làm thế nào một thử/bắt sẽ không giải quyết nó. Thứ hai, tôi biết bạn không muốn có một cuộc chiến về công nghệ/thực hiện, nhưng chúng tôi có thể hỏi tại sao bạn đang cố gắng gửi email theo cách này? Nó có vẻ như tùy chọn ít ổn định nhất. – scunliffe

+0

Ứng dụng hỗ trợ một phần của cơ chế cấp phép thay đổi cho nhiều ứng dụng nhạy cảm với Sarbanes-Oxley. Các nhân viên bảo mật nhấn mạnh rằng sendmail phía khách hàng là cách duy nhất để ngăn chặn giả mạo địa chỉ người gửi. Không có tranh luận nào sẽ thay đổi suy nghĩ của họ. –

+0

@Ken Paul, bạn có bất kỳ ý tưởng nào về trang web được phát hiện đáng tin cậy không ... tôi cũng cần ... –

Trả lời

0

từ sự hiểu biết của tôi điều này là không thể nhưng bạn có thể có một số thử nghiệm may mắn cho một điều kiện cụ thể hơn, chẳng hạn như sự sẵn có của công nghệ cụ thể hoặc công nghệ bạn cần. Loại mã khách hàng của bạn yêu cầu loại nào trên trình duyệt (ActiveX, Java, kịch bản, v.v ...)? Biết rằng đó sẽ là một khởi đầu rất tốt để tìm ra cách kiểm tra trình duyệt của khách hàng cho môi trường được yêu cầu bởi mã máy khách của bạn.

+0

Tôi đã thêm giải thích về công nghệ không thành công trong câu hỏi. Tôi không chắc chắn rằng giúp, mặc dù. –

2

Dưới đây là một thử nghiệm mà bạn có thể sử dụng:

function isTrustedIE(){ 
    try{ 
     var test=new ActiveXObject("Scripting.FileSystemObject"); 
    } 
    catch(e){ 
     return false; 
    } 

    return true; 
} 

di chúc này, tất nhiên, thất bại nếu người dùng đã tắt chức năng mà đối tượng cụ thể, thậm chí trên một trang web đáng tin cậy.

+0

Tôi đã thử điều đó và nó không hoạt động. Trong cả một trang đáng tin cậy và không đáng tin cậy, nó trở lại đúng với tôi. Tôi nghĩ rằng bạn có một sự khác biệt khác nhau giữa các khu vực đáng tin cậy và không đáng tin cậy so với tôi (và người dùng điển hình của tôi). –

0

Bạn có thể yêu cầu tên người dùng của người dùng hiện đã đăng nhập, nếu bạn nhận được nó, bạn sẽ biết trang web nằm trong vùng "Trang web tin cậy" hoặc "Mạng nội bộ cục bộ".

+0

Tôi đang thử nghiệm điều này và sẽ báo cáo kết quả. Cảm ơn bạn - điều này có vẻ hy vọng. –

+0

Điều này không giúp được gì. Mọi người rất quen với việc chấp nhận cảnh báo ActiveX rằng tôi có thể mở một đối tượng WShell.Script bất kể trang web có được tin cậy không. –

0

Có lẽ, cách tốt để giải quyết vấn đề này, trong khi vẫn hỗ trợ các kết hợp bất thường, là kiểm tra xem một hành vi cụ thể có thành công hay không.

Ví dụ, nếu bạn cần làm

a.innerHTML = "abc"; 

sau đó bạn có thể kiểm tra hay không innerHTML đã thay đổi. Thật không may, tôi không thể đảm bảo với bạn rằng tất cả các tính năng đều có thể phát hiện được. Ngoài ra, hãy thử ... phát biểu khai thác có thể rất hữu ích.

0

Trong trường hợp của bạn (trong đó vấn đề cụ thể bạn đang xử lý là gửi thư không thành công), tôi vẫn đề xuất việc đánh dấu email không thành công, nhưng sau đó đưa ra một câu trả lời chung chung hơn. "Thư của bạn đã thất bại. Nó có thể đã thất bại vì bất kỳ lý do nào sau đây" và sau đó ném vào một danh sách có dấu đầu dòng, với "không làm cho trang web này đáng tin cậy" đẹp và đậm ở trên cùng. Nếu sendmail không thành công vì các lý do khác ngoài việc trang web của bạn không đáng tin cậy, thì người dùng của bạn có thể cũng cần phải biết về điều đó.

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