Как я могу использовать библиотеку 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()