Как предотвратить sql-инъекцию в функции фильтра снежинки

Я использую ввод от пользователя для запроса снежинки в представлении DRF, как предотвратить в приведенном ниже коде возможность sql-инъекции?

entity_id = kwargs['pk']
table = session.table("my_table").filter(col(ID_COL)==entity_id )

Хорошая новость заключается в том, что пользовательский ввод уже должен быть отфильтрован, если вы используете filter().

Тестирование со Snowpark:

import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col

def main(session: snowpark.Session): 
    # Your code goes here, inside the "main" handler.
    tableName = 'information_schema.packages'
    dataframe = session.table(tableName).filter(col("language") == "';drop table bobby_tables")

    # Print a sample of the dataframe to standard output.
    dataframe.show()

    # Return value will appear in the Results tab.
    return dataframe

Если вы проверите журналы Snowflake, то обнаружите, что Snowflake выполнила следующий запрос, заключенный в кавычки:

SELECT  *  
FROM information_schema.packages 
WHERE ("LANGUAGE" = ''';drop table bobby_tables')
Вернуться на верх