2009-09-11 6 views
5

방문자가 이메일을 보낼 수 있도록 웹 사이트에 Django Contact Form을 사용하고 있습니다.전자 메일을 보낼 때 문자를 이스케이프 처리해야합니까?

현재는 이스케이프 문자이므로 작은 따옴표 및 큰 따옴표는 각각 ' 및 으로 변환됩니다. 따옴표가 '"으로 표시되면 전자 메일을 읽을 수 있습니다.

나는 xss의 위험 때문에 내 웹 페이지에 방문자의 이스케이프 처리되지 않은 입력을 절대해서는 안되는 이유를 이해합니다. 이메일에 동일한 위험이 있습니까? 아니면 방문자의 이스케이프 처리되지 않은 입력을 보내도됩니까?

답변

4

HTML 메일 인 경우 이스케이프하는 데 신경 쓰지 않으므로 일반 텍스트라고 가정합니다. 어떤 경우에는 따옴표를 사용하지 않으려합니다. 템플릿 본체를

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

개로 묶어 문자를 그대로 둘 수 있습니다.

+0

예, 일반 텍스트 이메일입니다. 나는 지나치게 편집 적이라고 생각했다. 전자 메일 리더가 일반 텍스트를 html로 구문 분석하는 것에 대해 걱정했다. – Alasdair

+0

전자 메일은 일반 텍스트 형식이므로 편집인 일 필요가 없습니다. 따라서 클라이언트는이를 일반 텍스트로 해석하고 태그를 알지 않아야합니다. – Humphrey

+0

본문에 HTML을 포함하기 만하면 일반 텍스트 전자 메일을 HTML 전자 메일로 변환 할 수 없습니다. 'Content-Type : text/html' 헤더는 클라이언트에게 HTML임을 알리는 반면'Content-Type : text/plain'은 일반 텍스트 전자 메일을위한 것입니다. 헤더가 없으면 일반 텍스트의 기본값으로 간주됩니다. –

0

나는 여전히 안전하다고 생각합니다. 대부분의 이메일 클라이언트가 이미지를 허용하기 때문에 이메일에 img 태그를 사용하여 다른 사람을 중지시키는 데 아무 것도 할 수 없습니다 ... 누군가의 IP 주소를 얻으려고 말합니다.

+0

이미지와 같은 HTML 태그는 의도적으로 MIME 헤더를 포함하여 메일이 HTML임을 나타낼 때만 여전히 효과적입니다. 다행스럽게도 IE와 달리 메일러는 콘텐츠 스니핑을하지 않습니다. – bobince

관련 문제