ESAPI Python, к сожалению, очень длинный мертвый проект. У меня нет никаких альтернатив Python, но библиотека не имела коммитов с 9 августа 2010 года.
Я не знаком с веб-фреймворками Python, но я do регулярно обучайте безопасному программированию.
Каждый раз, когда вы выполняете вызов функции, вам нужно задать себе вопрос:
«Я передаю это переводчику?»
Если ответ«да», то вам нужно кодировать, чтобы функция THAT рассматривала ввод чисто как данные, а не как исполняемый код.
В этом конкретном случае, если ваша запись в журнале может быть интерпретирована браузером (что является распространенным явлением), вы также захотите кодировать для HTML. Однако, если ваша среда никогда не использует журналирование на основе html и всегда представляет собой необработанный текст, это можно считать «смягченным» или «ложноположительным» в зависимости от того, как ваша компания согласилась на эти условия.
Кроме того, мне нравится практика переноса любого пользовательского ввода с уникальным разделителем. Вы можете использовать квадратные скобки, но мне нравятся сильные визуальные подсказки в моих журналах.
Изображение: [USERACTION] + userId + '►' + encode (userInput) + '◀'
Или даже:
[USERACTION] + userId + '(͡ʘ+ ͡ʘ) '+ encode (userInput) +' <::::: [] = ¤ (▀̿̿Ĺ̯̿̿▀̿ ̿) '</p>
Все, что помогает понять, что кто-то вмешался в ваши журналы, хорошо,Чем громче, тем лучше!