2012-02-29 40 views
6

Tôi đã triển khai các trường honeypot trên phần lớn các biểu mẫu liên hệ của khách hàng của tôi để tránh spam. Tuy nhiên, tôi nhận thấy rằng tùy chọn điền tự động điền của IE điền vào trường honeypot, và do đó kích hoạt logic chống spam của tôi. Làm thế nào tôi có thể ngăn chặn điều này?Làm cách nào để ngăn không cho điền biểu mẫu tự động điền vào một trường honeypot?

Tôi đã cố gắng cung cấp cho trường biểu mẫu một tên khác - hiện được gọi là emailConfirmation, nhưng tôi đã thử conf_emliame và nó vẫn tự động điền. Tôi cũng đã cố gắng di chuyển trường honeypot đến dưới cùng của biểu mẫu - không nơi nào gần đầu vào hiện tại email.

+0

là trường ẩn? Nếu có, tôi không hiểu tại sao IE sẽ tự động điền nó. Nếu không, thì "honeypot" là gì? –

+0

Có, trường bên trong một SPAN bị ẩn (css: 'display: none'), đó là trường honeypot là trường ẩn mà bot không biết bị ẩn, vì vậy chúng điền vào. Nhưng IE * IS * tự động điền nó. –

+0

Vâng, tôi chỉ đơn giản là không thể tin rằng IE là quá ngu ngốc. Nó có ý nghĩa gì để điền vào một lĩnh vực ẩn? :/ –

Trả lời

1

Cho trường honeypot của bạn một tên bán ngẫu nhiên, ví dụ: hậu tố tên thật với một số ngẫu nhiên. Bằng cách này, nó không bao giờ nên cùng một tên hai lần và không nên được phổ biến bởi IE.

Bạn cũng có thể muốn xem cfformprotect. Nó có một số tính năng tuyệt vời và đã giúp tôi với việc bảo vệ đệ trình biểu mẫu khá một vài dự án.

+0

Cảm ơn, tôi cũng đang cố gắng tránh xa việc sử dụng ColdFusion, nơi mà có thể là những trang web tiếp thị, và ngay bây giờ, nhu cầu duy nhất cho CF là thêm dữ liệu vào cơ sở dữ liệu của khách hàng. . –

5

Như được đề xuất trong câu trả lời mà David Faber liên kết, hãy thử thêm autocomplete="off" attribute vào thẻ input.

Đây không phải là thuộc tính HTML4/XHTML chuẩn, nhưng tất cả các trình duyệt chính đều hiểu nó. Và it is standardized in HTML5.

+0

Điều này sẽ vẫn ngăn các bot tự động nhập dữ liệu vào trường? –

+0

Nó nên _không dừng chương trình tự động nhập dữ liệu vào trường mà tôi cho là điểm. (Để cụ thể, nó sẽ dừng các chương trình được xử lý tốt, chẳng hạn như các trình duyệt, hiểu và tôn trọng thuộc tính 'autocomplete', tự động điền vào trường.Nhưng tôi cho rằng các chương trình mà bạn muốn bẫy đặc biệt là những người làm _not_ cư xử tốt và tôn trọng những chỉ dẫn đó.) –

+0

cảm ơn, tôi sẽ thử –

0

đây là đề xuất của tôi cho honeypot vô hình của bạn được gửi: Đặt thẻ autocomplete = "off" html ở cấp biểu mẫu. Đặt nó ở cấp độ trường vô hình bạn đang xác định bot ẩn của bạn và bot thông minh có thể sử dụng điều này để nhận ra nó. Tính năng hỗ trợ thẻ tự động hoàn thành: http://help.dottoro.com/lhdwgiwh.php Bạn nên thăm dò kỹ thuật với các phiên bản IE mục tiêu của mình (bạn có cần hỗ trợ IE 5 và 6 không?). Để tên trường vô hình của bạn sử dụng làm tên thông thường nhất có thể. Ví dụ. đất nước, vì vậy thuật toán bot sẽ nhặt nó lên và điền nó với dữ liệu.

Trân trọng, Karlo.

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