sách gpt4 ai đã đi

postgresql - Không chắc chắn 100% liệu điều này có an toàn không

In lại 作者:行者123 更新时间:2023-11-29 14:25:43 33 4
mua khóa gpt4 Nike

鉴于以下 PostgreSQL 代码,我认为这段代码不容易受到 SQL 注入(inject)攻击:

_filter 'day'
_start 1
_end 10
_sort 'article_name'
_order 'ASC'

RETURN QUERY EXECUTE '
LỰA CHỌN *
FROM articles a
WHERE article_name ILIKE ''%' || $1 || '%''
ORDER BY $4 ' || $5 || '
LIMIT ($3-$2) OFFSET $2'
USING _filter, _start, _end, _sort, _order;

但我没有找到太多关于 USING 子句与字符串组合的文档。我确实在 DBA 上找到了这篇不错的文章(接受的答案):https://dba.stackexchange.com/questions/159424/how-to-use-function-parameters-in-dynamic-sql-with-execute我认为我已经正确实现了

1 Câu trả lời

这段代码不会做你想做的事。

$1 将替换为第一个函数参数,KHÔNG替换为 _filter.

此外,这对 SQL 注入(inject)是开放的。

这就是你想要的:

RETURN QUERY EXECUTE
format(
E'SELECT *\n'
'FROM articles a\n'
'WHERE article_name ILIKE %L\n'
'ORDER BY %I %s\n'
'LIMIT %s OFFSET %s',
'%' || _filter || '%',
_sort,
_order,
_end - _start,
_start);

关于postgresql - 不能 100% 确定这是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58269459/

33 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com