Риск использования Apache mod_proxy

Если вы заботитесь о порядке, просто используйте метод equals:

list1.equals(list2);

Из javadoc:

Сравнивает указанный объект с этим списком на равенство. Возвращает true, если и только если указанный объект также является списком, оба списка имеют одинаковый размер, и все соответствующие пары элементов в двух списках равны. (Два элемента e1 и e2 равны, если (e1 == null? E2 == null: e1.equals (e2)).) Другими словами, два списка определяются как равные, если они содержат одинаковые элементы в одинаковом порядке. , Это определение обеспечивает правильную работу метода equals в различных реализациях интерфейса List.

Если вы хотите выполнять проверку независимо от порядка, вы можете скопировать все элементы в наборы и использовать равные в результирующих наборах:

public static <T> boolean listEqualsIgnoreOrder(List<T> list1, List<T> list2) {
    return new HashSet<>(list1).equals(new HashSet<>(list2));
}

Ограничением этого подхода является то, что он не только игнорирует порядок, но и частоту повторяющихся элементов. Например, если list1 был ["A", "B", "A"], а list2 был ["A", "B", "B"], подход Set рассматривал бы их как равные.

Если вам нужно быть нечувствительным к порядку, но чувствительным к частоте дубликатов, вы можете либо:

отсортировать оба списка (или копии) перед их сравнением, либо скопировать все элементы в мультисеть.

10
задан Bill the Lizard 18 September 2009 в 22:06
поделиться

2 ответа

Поскольку вы специально упомянули ProxyPass, я предполагаю, что вы используете mod_proxy в качестве обратного прокси.

Если это так, просто убедитесь, что ProxyRequests отключен. Это не нужно для обратных прокси.

В конфигурации прямого прокси, если бы вы включили ProxyRequests без установки ограничений доступа (то есть, каким хостам / сетям разрешено использовать прокси), вы могли бы очень легко получить открытый прокси.

9
ответ дан 3 December 2019 в 23:51
поделиться

Просто убедитесь, что для ProxyRequests установлено значение Выключено :

Это предотвращает работу Apache в качестве прямого прокси-сервера (что является проблемой о открытом прокси), но не влияет на его использование в качестве обратного прокси с использованием ProxyPass

4
ответ дан 3 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: