Я передаю строку из Java в Python через промежуточное ПО и оцениваю строку для выполнения метода в python.
Допустим, я отправляю приведенную ниже строку из JAVA
'test_method("Value1", "Value2", **{"k1:":"v1", "k2":"v2"}'
Это будет оценено в python и будет вызван test_method с аргументами. Это работает нормально, пока в любом из значений не будет одинарного или двойного qoute. Например, если v1 или v2 содержат одинарные или двойные кавычки, я получаю синтаксическую ошибку во время оценки в python
. Я обрабатываю это, экранируя все символы при отправке из python.
Я не уверен, что здесь может присутствовать какой-либо аналог инъекции SQL. Может кто-нибудь сказать, безопасно ли избежать кавычек и обратной косой черты? Если нет, каков рекомендуемый способ сделать это.