Нарушение границ доверия даже после проверки в java webapp

Я пытаюсь исправить проблемы с безопасностью, которые выдает сканирование checkmarx. В типе «нарушение границы доверия». Я пробовал несколько решений, но ни одно из них не работает.

Я пробовал проверку валидации, которая предоставляется большинством других решений, а также пробовал каноникализацию. но он все еще не работает.

public static String sanitize(String inputString) {

if (!inputString.matches("[-0-9a-zA-Z_]+")) {
    return null;
}

return ESAPI.encoder().canonicalize(inputString.replace("/", "").replace("..", ""), false, false);    
}

Проблема, обнаруженная Checkmarx: значение этого элемента проходит через код без должной очистки или проверки и в конечном итоге сохраняется в объекте сеанса на стороне сервера. (Нарушение границы доверия)


person DINESH GODARA    schedule 31.10.2019    source источник
comment
могу ли я узнать источник входных данных, которые вы пытаетесь очистить?   -  person securecodeninja    schedule 08.11.2019
comment
Вход берется из заголовка запроса   -  person DINESH GODARA    schedule 08.11.2019


Ответы (1)


Это хорошо известные «ошибки» для этого запроса Checkmarx; Нарушение границы доверия (CWE-501). Проблема может заключаться в том, что вы будете хранить данные в сеансе с очищенным и не очищенным объектом. Как я вижу, вы код, кажется, вы проводите некоторую дезинфекцию. Думаю, это ваш правильный белый список.

Если вы делаете это (дезинфекцию), вы должны рассматривать это как «ложное срабатывание». Я знаю, что Checkmarx работает над этим после того, как сообщил о некоторых из них. Это должно быть лучше в следующих выпусках Checkmarx

person SPoint    schedule 07.11.2019