Нарушение границы доверия даже после проверки в веб-приложении Java - PullRequest
2 голосов
/ 31 октября 2019

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

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

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: значение этого элемента проходит через код без надлежащей очистки или проверки и в конечном итоге сохраняется в объекте Session на стороне сервера. (Нарушение границы доверия)

1 Ответ

1 голос
/ 07 ноября 2019

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

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

...