Безопасность именованного канала WCF и многопользовательские сессии?

Решение по максимальной высоте от Джейка хорошо работает, если жестко заданное значение максимальной высоты не намного превышает реальную высоту (поскольку в противном случае возникают нежелательные задержки и проблемы с синхронизацией). С другой стороны, если жестко запрограммированное значение случайно не превышает реальную высоту, элемент не откроется полностью.

Следующее решение только для CSS также требует жестко заданного размера, который должен быть больше, чем большинство существующих реальных размеров. Однако это решение также работает, если реальный размер в некоторых ситуациях превышает жестко заданный размер. В этом случае переход может немного подскочить, но он никогда не оставит частично видимый элемент. Таким образом, это решение также может быть использовано для неизвестного контента, например, из базы данных, где вы просто знаете, что контент обычно не больше, чем х пикселей, но есть исключения.

Идея состоит в том, чтобы использовать отрицательное значение для margin-bottom (или margin-top для слегка отличающейся анимации) и поместить элемент содержимого в средний элемент с переполнением: hidden. Отрицательное поле элемента содержимого уменьшает высоту среднего элемента.

В следующем коде используется переход на полях с -150px на 0px. Это само по себе работает нормально, если элемент содержимого не превышает 150 пикселей. Кроме того, он использует переход на max-height для среднего элемента от 0px до 100%. Это, наконец, скрывает средний элемент, если элемент содержимого превышает 150px. Для максимальной высоты переход используется только для задержки его применения на секунду при закрытии, а не для получения плавного визуального эффекта (и, следовательно, он может работать от 0px до 100%).

CSS:

.content {
  transition: margin-bottom 1s ease-in;
  margin-bottom: -150px;
}
.outer:hover .middle .content {
  transition: margin-bottom 1s ease-out;
  margin-bottom: 0px
}
.middle {
  overflow: hidden;
  transition: max-height .1s ease 1s;
  max-height: 0px
}
.outer:hover .middle {
  transition: max-height .1s ease 0s;
  max-height: 100%
}

HTML:

Sample Text
Sample Text
Sample Text
Sample Test of height 150px
Sample Text
Hover Here

Значение для поля должно быть отрицательным и максимально приближенным к реальной высоте элемента содержимого. Если оно (абсолютное значение) больше, то возникают такие же проблемы с задержкой и синхронизацией, как и в решениях с максимальной высотой, которые, однако, могут быть ограничены, если размер в жестком коде не намного больше, чем реальный. Если абсолютное значение для margin-bottom меньше, чем реальная высота, переход немного увеличивается. В любом случае после перехода элемент содержимого либо полностью отображается, либо полностью удаляется.

Подробнее см. В моем блоге http://www.taccgl.org/blog/css_transition_display.html#combined_height

.

10
задан Luke 23 June 2009 в 14:59
поделиться

3 ответа

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

Посмотрите "Программирование служб WCF 2-е издание" Жюваля Лоуи. Глава 10 посвящена безопасности компонентов. На странице 514 он пишет: «Нет смысла использовать безопасность сообщений через IPC, поскольку с IPC всегда есть ровно один переход от клиента к службе.

2
ответ дан 4 December 2019 в 01:31
поделиться

В этой статье о безопасности именованных каналов эта тема обсуждается очень подробно.

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

Боюсь, я не знаю, защищена ли реализация WCF от этого типа атак по умолчанию.

1
ответ дан 4 December 2019 в 01:31
поделиться

Именованные каналы в WCF недоступны из сети, и для их защиты не требуется шифрование. Однако сервисы WCF не защищены от атаки, упомянутой romkyns.

Рекомендую прочитать следующие сообщения:

Изучение привязки именованных каналов в WCF — часть 1

Изучение привязки именованных каналов в WCF — часть 2

Изучение привязки именованных каналов в WCF — часть 3

Изучение привязка именованных каналов WCF — часть 4

о связанных с этим проблемах безопасности.

Короче говоря, WCF позволяет ЛЮБОМУ процессу маскироваться под сервис и:

  1. Либо имитировать сервис, либо
  2. Подслушивать и подделывать данные, предполагая, что мошеннический процесс сам подключается к сервису. Однако, если служба использует безопасность доступа для проверки личности вызывающего пользователя, это может оказаться невозможным.
7
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

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