как обезопасить методы моего сервера - PullRequest
5 голосов
/ 06 марта 2010

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

Ответы [ 2 ]

1 голос
/ 07 марта 2010

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

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

0 голосов
/ 08 марта 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...