powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Защита от от SQL инъекции
10 сообщений из 10, страница 1 из 1
Защита от от SQL инъекции
    #39141589
Closius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть такой запрос на Python:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
db.execute('''INSERT INTO messenger_message (text,
                                             datetime,
                                             sender_id,
                                             thread_id,
                                             is_read,
                                             is_deleted)
                          VALUES ('%s',
                                  '%s'::timestamptz,
                                  %s,
                                  %s,
                                  FALSE ,
                                  FALSE );'''
% (str(message),
datetime.datetime.now(datetime.timezone.utc),
user_id,
thread_id))



Подскажите плиз новичку как защитить его от SQL инъекции ?
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39141592
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать параметры вместо подставления литералов.
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39141611
Closius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

я решил передавать параметры как tuple
вместо " %s " % text
делать: " %s " , (text,)

Нормальное решение?
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39141630
Roman Aka Magician
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Closius,
http://initd.org/psycopg/docs/usage.html Warning Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
The correct way to pass variables in a SQL command is using the second argument of the execute() method:

>>> SQL = "INSERT INTO authors (name) VALUES (%s);" # Note: no quotes
>>> data = ("O'Reilly", )
>>> cur.execute(SQL, data) # Note: no % operator
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39141809
Closius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Aka Magician,

Окей я понял. А через tuple нормальное решение? я протестировал, оно все экранирует, например такойю строку ";-- оно заэкранирует
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39142183
Roman Aka Magician
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Closius,

Вставьте drop database для точного теста :)
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39142639
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClosiusRoman Aka Magician,

Окей я понял. А через tuple нормальное решение? я протестировал, оно все экранирует, например такойю строку ";-- оно заэкранирует

передача параметров в запрос на самом деле как раз tupple и использует.
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39143451
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Closius,

голая бд вряд ли где-то торчит во внешний мир... если речь про вэб дела:

почитайте книгу
"головоломки на PHP для хакера"

там разжованы и показаны(как задачи и ответы) не только эти проблемы по взлому вэб серваков.

(круглый)
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39174817
Rad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если книга не поможет, то можно использовать программы которые могут помочь защититься. Можно посмотреть на dataarmor.ru или greensql.com ;)
...
Рейтинг: 0 / 0
Защита от от SQL инъекции
    #39174985
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0голая бд вряд ли где-то торчит во внешний мир+1
защита это комплекс мер. От замка на серверной, до клиента который защищает саму БД.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Защита от от SQL инъекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]