Bất kỳ thư viện tốt nào cũng phải cung cấp lối thoát thích hợp cho các tên SQL, bao gồm:
- tên giản đồ
- tên bảng
- tên cột
Ví dụ:trong pg-promise, bạn sẽ sử dụng nó như thế này:
db.query("INSERT INTO $1~ VALUES ($2, $3, $4)", [table_name, value_a, value_b, value_c])
tức là bạn có được tên bảng của mình thoát đúng cách bằng cách thêm biến bằng ~
, do đó làm cho nó an toàn trước SQL injection.
Từ đây, một cách thoát đơn giản cho các tên bảng được thư viện thực thi:
return '"' + name.replace(/"/g, '""') + '"';
Xem thêm:Tên SQL