HTML кодирование, декодирование с помощью Python

Я отправляю закодированный HTML в мой обработчик Python ajax с помощью jQuery. Вот мой код jQuery:

var animal_data = encodeURI( $('#animal-list-table').html() ); // something like this: %0A%20%20%20%20%20%20%20%20
mydata = 'action=send_mail&animal_data='+animal_data
$.ajax({
    type: 'POST',
    url: '/customer/templates/slakteweb/ajax-handler',
    data: mydata,
    processData: false,
    success: function(result){
        console.log(result);
    }
});

В обработчике ajax я попытался так:

import urllib
animal_data = site.param('animal_data')
animal_data_html = urllib.unquote(animal_data).decode('utf8')

Но я хотел напечатать теги HTML и все такое, чтобы я мог отправить его как электронное письмо в формате HTML. Каков наилучший способ сделать это?

1 ответ

Для данных POST вам не нужна функция encodeURI, поскольку данные POST не отправляются как часть URI/URL. Если вы этого не сделаете, вам также не нужно ничего декодировать на стороне сервера.

Как правило, это очень плохая идея - не проверять ввод, полученный из ненадежного источника (здесь: браузер). Даже если вы думаете, что делаете все кодирование на стороне клиента, считайте это небезопасным. Короче говоря: лучший и наиболее распространенный способ - анализировать содержимое как обычный текст, а не как HTML.

Другие вопросы по тегам