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
|
Список | 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 по дате отправления: