Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
create or replace function select_active_delete (text, text) returns smallint as 'SELECT active FROM mailbox WHERE username=$1 AND domain=quote_literal($2) ' language sql VOLATILE RETURNS NULL ON NULL INPUT SECURITY DEFINER; Запрос select select_active_delete('dd@new.ru', 'new.ru'); Не возвращает условие, хотя если в функции не указать quote_literal - все работает; Пробовал и так: create or replace function select_active_delete (text, text) returns smallint as 'SELECT active FROM mailbox WHERE username=$1 AND domain='|| quote_literal($2) || ' language sql VOLATILE RETURNS NULL ON NULL INPUT SECURITY DEFINER; И так 'SELECT active FROM mailbox WHERE username=$1 AND domain='|| quote_literal($2) ' ' Результат одинаковый! В ем грабли? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 20:49 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
функцию quote_literal надо использовать при составлении динамического запроса Поэтому Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 21:57 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
select select_active_delete('dd@new.ru', 'new.ru'); Пользователь может менять параметры 'dd@new.ru' и 'new.ru' на любые другие. Не опасна ли тогда такая хп будет в плане sql инъекции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 23:07 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
neowebselect select_active_delete('dd@new.ru', 'new.ru'); Пользователь может менять параметры 'dd@new.ru' и 'new.ru' на любые другие. Не опасна ли тогда такая хп будет в плане sql инъекции? инъекции возможны, если запрос строится динамически. Здесь этого я не наблюдаю. А что мешает попробовать сделать инъекцию и на основании полученного результата сделать выводы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 10:15 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
И все таки: create or replace function used_script (text) returns text as $$ declare res text; name text; begin name:=quote_literal($1); select into res domain from mailbox where username = name; return res; end; $$ language plpgsql VOLATILE RETURNS NULL ON NULL INPUT SECURITY DEFINER; запрос из php: ...select used_script($var1)... c quote_literal оно не работает. Сама строка(в нормальном виде) не содержит спецсимволов. Уже пробовал заменить select into res domain from mailbox where username = name; на select into res domain from mailbox where username = '||name||'; и так name:=quote_literal("$1"); Сделал return name, чтоб посмотреть что в этой переменной - там строка, которая и должна быть.... Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2007, 15:05 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
А может попробовать declare some_val alias for $1 ... begin name:=quote_literal(some_val); ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2007, 15:42 |
|
||
|
не воспринимает quote_literal
|
|||
|---|---|---|---|
|
#18+
Переменные не надо экранировать Пример Код: plaintext 1. 2. 3. 4. 5. 6. Переменные надо экранировать Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2007, 16:46 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=301&tid=2005600]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 280ms |

| 0 / 0 |
