Проверка клиентского программного обеспечения для веб-сервисов - PullRequest
1 голос
/ 30 сентября 2010

Я пытаюсь придумать, как проверить, что веб-сервис доступен только авторизованному клиентскому программному обеспечению.

Теперь я не имею в виду, что я хочу, чтобы веб-сервис был открыт только для авторизованных пользователей, я хочу, чтобы мои веб-сервисы были открыты только для клиентов, которых я считаю приемлемыми.

Давайте рассмотрим вариант использования. У меня есть веб-сервис, который я предоставляю, и программное обеспечение, которое подключается к этому веб-сервису. В этом случае сервис основан на REST. Я не хочу, чтобы другие люди создавали клиентов и получали доступ к моему веб-сервису и получали прибыль от моего сервиса, потому что этот сервис представляет собой особый набор данных, который мне нужно хранить только для утвержденных клиентов.

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

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

Я не уверен, что то, что я хочу сделать, даже возможно, но я надеюсь, что кто-то может доказать, что я неправ.

1 Ответ

2 голосов
/ 30 сентября 2010

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

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

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