@@ -61,3 +61,29 @@ func TestInvalidSort(t *testing.T) {
6161 require .Equal (t , "SELECT * FROM t ORDER BY \" ID; DROP TABLE users;\" ASC, \" name\" DESC LIMIT 11 OFFSET 0" , sql )
6262 require .Empty (t , args )
6363}
64+
65+ func TestPageColumnInjection (t * testing.T ) {
66+ paginator := pgkit .NewPaginator [T ]()
67+ page := pgkit .NewPage (0 , 0 )
68+ page .Column = "id; DROP TABLE users;--"
69+
70+ _ , query := paginator .PrepareQuery (sq .Select ("*" ).From ("t" ), page )
71+
72+ sql , args , err := query .ToSql ()
73+ require .NoError (t , err )
74+ require .Equal (t , "SELECT * FROM t ORDER BY \" id; DROP TABLE users;--\" ASC LIMIT 11 OFFSET 0" , sql )
75+ require .Empty (t , args )
76+ }
77+
78+ func TestPageColumnSpaces (t * testing.T ) {
79+ paginator := pgkit .NewPaginator [T ]()
80+ page := pgkit .NewPage (0 , 0 )
81+ page .Column = "id, name"
82+
83+ _ , query := paginator .PrepareQuery (sq .Select ("*" ).From ("t" ), page )
84+
85+ sql , args , err := query .ToSql ()
86+ require .NoError (t , err )
87+ require .Equal (t , "SELECT * FROM t ORDER BY \" id\" ASC, \" name\" ASC LIMIT 11 OFFSET 0" , sql )
88+ require .Empty (t , args )
89+ }
0 commit comments