Функция escape
Функция escape применяется к строке и заменяет специальные символы HTML на соответствующие сущности. Это необходимо для защиты от XSS-атак, когда пользовательские данные выводятся на странице. Первым параметром передаётся строка для экранирования. Функция возвращает объект Markup, который помечен как безопасный для вставки в HTML.
Синтаксис
escape(s)
Пример
Давайте экранируем строку с тегами:
from flask import escape
res = escape('<a href="#">link</a>')
print(res)
Результат выполнения кода:
<a href="#">link</a>
Пример
Давайте применим функцию в обработчике маршрута для вывода пользовательского ввода:
from flask import Flask, escape, request
app = Flask(__name__)
@app.route('/')
def index():
name = request.args.get('name', 'user')
return f'Hello, {escape(name)}!'
Результат выполнения кода для адреса /?name=<b>abcde</b>:
Hello, <b>abcde</b>!
Пример
Давайте экранируем несколько специальных символов:
from flask import escape
res = escape('5 > 3 & 2 < 4')
print(res)
Результат выполнения кода:
5 > 3 & 2 < 4