Как правильно закодировать ссылку mailto? - PullRequest
7 голосов
/ 27 сентября 2011

Я генерирую некоторый HTML и хочу создать ссылку mailto, безопасную для XSS и базы данных. Какую кодировку использовать здесь? Как это?

myLiteral.Text = string.Format(
  "mailto:{0}?Content-Type=text/html&Subject={1}&body={2}", 
  HttpUtility.UrlEncode(email_address),
  HttpUtility.UrlEncode(subject),
  HttpUtility.UrlEncode(body_message));

Должен ли я использовать UrlEncode здесь? HtmlEncode? Делай то, что я сделал, тогда HtmlEncode целиком? Я пишу HTML URL, поэтому я немного неясен ...

@ Квентин, ты это описываешь? (Изменено & с &, так как я собираюсь HtmlEncode ...)

myLiteral.Text = 
  HttpUtility.HtmlEncode(HttpUtility.UrlEncode(
    string.Format(
      "mailto:{0}?Content-Type=text/html&Subject={1}&body={2}", 
      email_address, subject, body_message)));

1 Ответ

6 голосов
/ 27 сентября 2011

Вы помещаете некоторый контент в URL, а затем представляете этот URL в HTML.Так что URLEncode это тогда HTMLEncode то, что вы получаете от URLEncode.

...