2010-03-05 2 views
5

Я только что прочитал несколько сообщений о скрытии кода Silverlight в некотором роде. Основной вывод заключался в том, что вы можете запутать его, но вы не можете скрыть его, поэтому на сервере должны быть обеспечены безопасные вещи. Но тогда каждый может видеть через Fiddler, какие данные отправляются на конкретный веб-сервис. Например, они могут видеть, что я вызываю UpdateCustomer.asmx. И если они это сделают, что я могу сделать, чтобы остановить их от вызова этого asmx? Есть ли способ разрешить только «мое приложение silverlight» вызвать этот метод?Как защитить мои методы сервера

ответ

0

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

  • Клиентское приложение попадает конечная точка «givemeatoken .asmx»
  • Сервер генерирует некоторый ключ маркера
  • Клиент шифрует все вызовы с использованием указанных маркеров, передавая их в одной конечную точку„onlyservice.asmx“
  • Сервер расшифровывает полезную нагрузку вызовов с использованием маркеров, и маршрутизировать вызовы к„реальному“ веб-сервисы.
  • Сервер извлекает результаты вызова, повторно шифрует с использованием токена и передает обратно клиенту
  • Клиент расшифровывает результаты и делает то, что ему нужно.

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

+0

Спасибо, я реализую механизм аутентификации. – Michel

1

Nope. Кто-то всегда может перепроектировать ваше приложение Silverlight, чтобы украсть все учетные данные, которые вы используете. Вы можете сделать этот процесс обратной инженерии более утомительным, чем в противном случае, но вы не можете сделать это невозможным.

Почему это проблема, если кто-то обращается к вашему URL с пользовательского клиента? Вы подтверждаете подлинность пользователя , правильно?

+0

Нет, в этом случае пользователь не аутентифицирован. – Michel

Смежные вопросы