Как я могу использовать библиотеку Python bleach, чтобы избежать внедрения скрипта?

Я написал простое почтовое приложение, которое подключалось к базе данных с именем forum. Мой код приведен ниже.

# "Database code" for the DB Forum.

import datetime, psycopg2, bleach


POSTS = [("This is the first post.", datetime.datetime.now())]

def add_post(message):
    ''' This function insert post into the database '''
    db = psycopg2.connect(dbname = 'forum')
    c = db.cursor()
    c.execute("insert into posts values (%s)", (message,)) 
    db.commit()
    db.close()

def get_posts():
    '''Take the posts from the databse '''
    db = psycopg2.connect(dbname = 'forum')
    c = db.cursor()
    c.execute("select content, time from posts order by time")
    result = c.fetchall()
    POSTS.extend(result)
    db.close()
    return reversed(POSTS)

Я хочу использовать библиотеку отбеливателя в этом коде. Но я не знаю как. Я уже импортирую библиотеку отбеливателя. Заранее спасибо.

1 ответ

Вы должны добавить следующую строку в ваш метод add_post:

text = bleach.clean( str(message) )

А затем настройте функцию execute соответственно:

c.execute("insert into posts values (%s)", (text,)) 

Таким образом, полный метод add_post выглядит так:

def add_post(message):
    ''' This function insert post into the database '''
    db = psycopg2.connect(dbname = 'forum')
    c = db.cursor()
    text = bleach.clean( str(message) )
    c.execute("insert into posts values (%s)", (text,)) 
    db.commit()
    db.close()
Другие вопросы по тегам