Python - Как исправить CWE-117: неправильная нейтрализация вывода для журналов - PullRequest
0 голосов
/ 02 октября 2019

Я попытался использовать clean = message.replace ('\ n', ''). Replace ('\ r', ''). Но он все равно не проходит сканирование veracode. Есть ли лучший способ сделать это? Также я читал о ESAPI Python, но не получил никакой хорошей документации, чтобы решить эту проблему.

1 Ответ

0 голосов
/ 04 октября 2019

ESAPI Python, к сожалению, очень длинный мертвый проект. У меня нет никаких альтернатив Python, но библиотека не имела коммитов с 9 августа 2010 года.

Я не знаком с веб-фреймворками Python, но я do регулярно обучайте безопасному программированию.

Каждый раз, когда вы выполняете вызов функции, вам нужно задать себе вопрос:

«Я передаю это переводчику?»

Если ответ«да», то вам нужно кодировать, чтобы функция THAT рассматривала ввод чисто как данные, а не как исполняемый код.

В этом конкретном случае, если ваша запись в журнале может быть интерпретирована браузером (что является распространенным явлением), вы также захотите кодировать для HTML. Однако, если ваша среда никогда не использует журналирование на основе html и всегда представляет собой необработанный текст, это можно считать «смягченным» или «ложноположительным» в зависимости от того, как ваша компания согласилась на эти условия.

Кроме того, мне нравится практика переноса любого пользовательского ввода с уникальным разделителем. Вы можете использовать квадратные скобки, но мне нравятся сильные визуальные подсказки в моих журналах.

Изображение: [USERACTION] + userId + '►' + encode (userInput) + '◀'

Или даже:

[USERACTION] + userId + '(͡ʘ+ ͡ʘ) '+ encode (userInput) +' <::::: [] = ¤ (▀̿̿Ĺ̯̿̿▀̿ ̿) '</p>

Все, что помогает понять, что кто-то вмешался в ваши журналы, хорошо,Чем громче, тем лучше!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...