Есть ли возможные проблемы с безопасностью при использовании system.dll через веб-сервис?

Мне любопытно, какой ущерб кто-то может нанести простым доступом к пространству имен System.dll в C#.

Я играл с динамической компиляцией кода и создал простой веб-сайт, который позволяет мне вводить код на C#. Это передается через веб-сервис классу, который выполняет и выполняет код в новом потоке и возвращает (код должен возвращать строку) результат через WS и отображается на веб-странице.

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

Говоря "гипотетически", если я опубликую это веб-приложение, может ли кто-нибудь нанести серьезный ущерб любому веб-серверу, имея доступ к System.dll?

** бонусные баллы за какой-то пример!:)

2 ответа

Решение
  1. Вы можете создать новый поток (mscorlib.dll), который не будет соответствовать вашему 5-секундному правилу, загрузить двоичный файл для удаления с помощью WebClient (System.dll) и выполнить его с помощью Process (System.dll).
  2. Просто цикл, который создает тысячи потоков с постоянным циклом, потребует много процессорного времени.

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

Другие вопросы по тегам