Безопасен ли мой код для пользователей sqlite3?
@bot.message_handler(commands=["start"])
def start_message(message):
try:
connect = sqlite3.connect('Users2.db')
cursor = connect.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS User(
id INTEGER PRIMARY KEY,
user_name TEXT NOT NULL UNIQUE,
last_name TEXT NOT NULL UNIQUE,
nickname TEXT NOT NULL UNIQUE,
city TEXT)""")
connect.commit()
id0 = message.chat.id
user_name0 = message.chat.first_name
last_name0 = message.chat.last_name
nickname0 = message.chat.username
cursor.execute(
"SELECT id, user_name, last_name, user_name, nickname FROM User "
"WHERE id = ? "
"OR user_name = ? "
"OR last_name = ? "
"OR nickname = ?",
(id0, user_name0, last_name0, nickname0))
data = cursor.fetchone()
if data is None:
id1 = message.chat.id
first_name1 = message.chat.first_name
last_name1 = message.chat.last_name
username1 = message.chat.username
cursor.execute("INSERT INTO User VALUES(?, ?, ?, ?, ?);",
(id1, first_name1, last_name1, username1, ''))
connect.commit()
markup = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
btn1 = types.KeyboardButton("Погода?")
markup.add(btn1)
bot.send_message(message.chat.id, 'Привет! Введи свой город, чтобы я мог предоставить тебе погоду.',
reply_markup=markup)
else:
bot.send_message(message.chat.id, f'Привет! Я помню тебя. Если ты хочешь изменить город, введи его заново.')
connect.close()
except sqlite3.Error as e:
bot.send_message(message.chat.id, 'Произошла ошибка при подключении к базе данных.')
except sqlite3.IntegrityError as e:
bot.send_message(message.chat.id, 'Произошла ошибка UniqueViolation. '
'Пользователь с такими данными уже существует.')
except requests.exceptions.RequestException as e:
bot.send_message(message.chat.id, 'Произошла ошибка при обращении к внешнему сервису погоды.')
except Exception as e:
bot.send_message(message.chat.id, 'Произошла непредвиденная ошибка. Попробуйте позже.')
Пишу телеграмм бот на telebot, делаю базу данных, можете посмотреть код и сказать безопасен ли код для пользователей, и чтобы вы добавили для безопасности кода. База данных sqlite3