Re: Safe SELECT ... LIKE abc% in psycopg

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Safe SELECT ... LIKE abc% in psycopg
Дата
Msg-id 387a4f5e-5886-443d-bc4e-e649706173a4@aklaver.com
обсуждение исходный текст
Ответ на Safe SELECT ... LIKE abc% in psycopg  (Philippe Strauss <philippe@straussaudio.ch>)
Ответы Re: Safe SELECT ... LIKE abc% in psycopg  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список psycopg
On 4/22/24 09:34, Philippe Strauss wrote:
> Hello, I'm Philippe from switzerland,
> 
> I'm writing using python a small JSON API for a mycology photos archive 
> webapp. Aside the main API endpoint are two
> helpers for an autocomplete form.
> Here is the first one:
> 
> --8<--
> @app.route('/genus/<genus>')
> def genus(genus):
>      with dbconn.cursor() as cur:
>          cur.execute("""SELECT myco.genus.name
>              FROM myco.genus
>              WHERE myco.genus.name LIKE %s""", (genus.upper()+'%',))
>          lsgenus = cur.fetchall()
>          ls = []
>          for genus in lsgenus:
>              ls.append(genus[0])
>      return jsonify(ls)
> --8<--
> 
> My questions:
> - What is the best way to use in psycopg3 to express a SELECT ... WHERE 
> ... LIKE blah% ?
> - Is my code above safe or vulnerable to a injection attack?
> - What peoples having passed on the same pattern have to recommend?

Read:

https://www.psycopg.org/psycopg3/docs/basic/params.html

It will answer the above.

For this case from link:

"When parameters are used, in order to include a literal % in the query 
you can use the %% string:"

> 
> Thanks!
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




В списке psycopg по дате отправления:

Предыдущее
От: Philippe Strauss
Дата:
Сообщение: Safe SELECT ... LIKE abc% in psycopg
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: Safe SELECT ... LIKE abc% in psycopg