powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Безопасность и pg_query_params
8 сообщений из 8, страница 1 из 1
Безопасность и pg_query_params
    #38582642
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую pg_query_params для записи и обновлении данных от пользователей на PHP

имеет ли смысл для большей безопасности использовать функции PHP

1) strip_tags htmlentities htmlspecialchars для всех текстовых полей
2) intval для всех числовых полей

Функцию pg_escape_string перестал использовать когда перешел на pg_query_params, она добавляла не нужное экранирование, а вот насчет других функций не уверен, посоветуйте как лучше.
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38582664
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tromИспользую pg_query_params для записи и обновлении данных от пользователей на PHP

имеет ли смысл для большей безопасности использовать функции PHP

1) strip_tags htmlentities htmlspecialchars для всех текстовых полей
2) intval для всех числовых полей

Функцию pg_escape_string перестал использовать когда перешел на pg_query_params, она добавляла не нужное экранирование, а вот насчет других функций не уверен, посоветуйте как лучше.

вопрос 1) это вообще не про postgresql

вопрос 2) - да но не только и не столько по соображениям безопасности сколько чтобы мусор до базы не доходил... и ошибки так легче ловить.
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38583422
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk,

вопрос 1)
ну как я понял всякие теги итд в запросе могут вызывать sql интекции и другие взломы и вопрос в том если я использую pg_query_params мне эти теги и любые символы угрозы не несут или все таки несут ?
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38585373
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trom, смотря как используете, если правильно, то не несут.
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38585927
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёш,

Как я могу использовать pg_query_params чтобы получить sql инъекцию ?
если strip_tags htmlentities htmlspecialchars из PHP помогут сдлеать сайт чуть более безопасным я их применю и все.

Кто нить ответит про strip_tags htmlentities htmlspecialchars из PHP помогут ли они ?
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38586196
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trom, работа pg_query_params основана на движке prepare запросов, а prepare позволяет писать переменные не в любом месте запроса и иногда текст запроса приходится формировать руками, например при подстановке имени таблицы, вот здесь возможна инъекция:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
$table_name = $_GET['category'];

$res = pg_query_params(
  sprintf(
    'select * from catalog.%s where id = $1', $table_name
  ),
  [ $id ]
);



если у Вас текст запроса - константа, то pg_query_params безопасен.

PS: а strip_tags htmlentities htmlspecialchars это безопасность HTML, защита от XSS и т.д., к базе это отношения не имеет.
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38586778
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёш,

А как защититься от иньекции по вашему примеру, какие данные и как нужно фильтровать в PHP ?

по strip_tags htmlentities htmlspecialchars понял это нужно и защитит меня но к postgres не относится
...
Рейтинг: 0 / 0
Безопасность и pg_query_params
    #38587034
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trom,

в этом примере, поскольку экранируем имя таблицы то есть SQL идентификатор , то нужно использовать pg_escape_identifier:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$table_name = $_GET['category'];

$res = pg_query_params(
  sprintf(
    'select * from catalog.%s where id = $1', pg_escape_identifier($conn, $table_name)
  ),
  [ $id ]
);



а $id экранировать не нужно, потому что pg_query_params передаёт свои параметры отдельно от тела запроса.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Безопасность и pg_query_params
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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