2009-09-11 35 views
5

Tôi đang sử dụng Django Contact Form trên trang web để cho phép khách truy cập gửi email.Tôi có cần phải thoát khỏi các ký tự khi gửi email không?

Hiện tại, đó là ký tự thoát, do đó, dấu ngoặc kép đơn và đôi được chuyển đổi thành '" tương ứng. Các email sẽ dễ đọc hơn nếu các dấu ngoặc kép được hiển thị là '".

Tôi hiểu tại sao tôi không bao giờ nên đưa đầu vào không thoát khỏi khách truy cập vào các trang web của mình, vì rủi ro của xss. Có nguy cơ tương tự với các email, hoặc là nó ok để gửi đầu vào không thoát của khách truy cập?

Trả lời

4

Nếu đây là các email HTML, thì bạn sẽ không bận tâm việc thoát, vì vậy tôi giả sử đây là văn bản thuần túy? Trong trường hợp bạn muốn vô hiệu hóa trích dẫn. Bạn có thể quấn phần thân của mẫu vào

{% autoescape off %} 
... 
{% endautoescape %} 

để riêng các ký tự của bạn.

+0

Có, chúng là các email văn bản thuần túy. Tôi nghĩ rằng tôi đã quá hoang tưởng, lo lắng rằng một trình đọc email sẽ phân tích cú pháp văn bản thuần túy dưới dạng html. – Alasdair

+0

Không cần phải hoang tưởng, vì email của bạn sẽ ở định dạng văn bản thuần túy, vì vậy khách hàng "nên" diễn giải nó dưới dạng văn bản thuần túy và không nhận thấy thẻ. – Humphrey

+0

Bạn không thể biến email văn bản thuần túy thành email HTML chỉ bằng cách đưa HTML vào nội dung. Tiêu đề 'Content-Type: text/html' cho khách hàng biết đó là HTML, trong khi' Content-Type: text/plain' là cho các email văn bản thuần túy. Nếu không có tiêu đề, mặc định văn bản thuần được giả định. –

0

Tôi vẫn mã hóa chúng để an toàn. Vì hầu hết các ứng dụng email cho phép hình ảnh, không có gì để ngăn ai đó sử dụng thẻ img trong email để nói ... nhận địa chỉ IP của ai đó.

+0

Thẻ HTML như hình ảnh vẫn chỉ có hiệu quả khi bạn cố tình bao gồm tiêu đề MIME để nói thư là HTML. May mắn thay, không giống như IE, người gửi thư không làm ngửi nội dung. – bobince

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