Функция html_escape
Функция html_escape применяется к строке и
возвращает новую строку, в которой специальные
символы HTML заменены на безопасные сущности.
Первым параметром передаётся строка для
экранирования. Вторым необязательным параметром
передаётся строка с символами, которые нужно
экранировать; по умолчанию это '&<>"'.
Функция полезна при выводе пользовательских
данных в HTML, чтобы предотвратить XSS-атаки.
Синтаксис
html_escape(string, quote)
Пример
Давайте экранируем строку с тегом:
from bottle import html_escape
res = html_escape('<b>hello</b>')
print(res)
Результат выполнения кода:
"<b>hello</b>"
Пример
Давайте экранируем строку с кавычками:
from bottle import html_escape
res = html_escape('"article" & \'user\'')
print(res)
Результат выполнения кода:
""article" & 'user'"
Пример
Давайте экранируем только символы '<' и '>', передав второй параметр:
from bottle import html_escape
res = html_escape('<b>hello</b>', '<>')
print(res)
Результат выполнения кода:
"<b>hello</b>"
Пример
Давайте применим функцию в маршруте Bottle для безопасного вывода пользовательских данных:
from bottle import Bottle, html_escape
app = Bottle()
@app.route('/user/<name>')
def user(name):
return html_escape(name)
app.run(host='localhost', port=8080)
Результат выполнения кода для адреса /user/<b>abcde</b>:
<b>abcde</b>
Смотрите также
-
функцию
html_quote,
которая экранирует строку для использования в HTML-атрибутах -
функцию
cookie_encode,
которая кодирует данные для хранения в cookie -
функцию
cookie_decode,
которая декодирует данные из cookie -
функцию
parse_auth,
которая разбирает заголовок авторизации