Использование исключений .net в качестве ошибки WCF является угрозой безопасности? - PullRequest
1 голос
/ 21 февраля 2012

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

Теперь я подумал, что именно по этой причине вы не включаете <servicedebug includeExceptionDetailInFaults="true" />. Но я не уверен. Будет ли для меня угрозой безопасности использовать мои исключения в качестве TDetail? А какие у меня другие варианты?

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

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

1 голос
/ 21 февраля 2012

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

0 голосов
/ 21 февраля 2012

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

...