čt 7. 1. 2021 v 12:13 odesílatel Durumdara <durumd...@gmail.com> napsal:

> Dear Members!
>
>
>
> Pavel Stehule <pavel.steh...@gmail.com> ezt írta (időpont: 2021. jan. 6.,
> Sze, 12:03):
>
>>
>>
>>
>> it cannot  work, because \ will be  replaced by \\
>>
>> postgres=# CREATE OR REPLACE FUNCTION public.unistr(text)
>>  RETURNS text
>>  LANGUAGE plpgsql
>>  IMMUTABLE STRICT
>> AS $function$
>> declare r text;
>> begin
>>   execute 'select ' || quote_literal($1) into r;
>>   return r;
>> end;
>> $function$
>> ;
>> CREATE FUNCTION
>> postgres=# select unistr('Az ad\u00f3kulcsonk\u00e9nti');
>> ┌──────────────────────────────┐
>> │            unistr            │
>> ╞══════════════════════════════╡
>> │ Az ad\u00f3kulcsonk\u00e9nti │
>> └──────────────────────────────┘
>> (1 row)
>>
>>
>>
>> Gavan Schneider
>>>
>>
> Thank you for the answer!
>
> We will try your solution.
>
> Only one question about it:
> Could we use PG's JSON interpreter somehow. I don't know it, but pseudo.
>
> select
>   GET_JSON_FIELD_VALUE(
>     'name',
>     FROM_JSON_TEXT(   '{name:' || chr(39) || thistable.thisfield ||
> chr(39) || '}' )
>   ) from thistable
>
> or use FORMAT instead of CONCAT.
>
> Is this possible to work? What do you think about the vulnerability?
>

The vulnerability is almost the same although it is a little bit harder to
create attack strings.

Regards

Pavel


> Thank you!
>
> dd
>
>

Reply via email to