Как обезопасить API, написанный на .Net - PullRequest
2 голосов
/ 17 марта 2010

Это вариант существующего в SO вопроса о защите / запутывании приложений .Net в целом.

Я разрабатываю API на C #, который включает в себя некоторые алгоритмы, которые я стремлюсь защитить. Я понимаю, что ни один метод не будет идеальным, но каков общепринятый метод для этого?

Я бы хотел, чтобы мои клиенты могли кодировать против API, но я не хочу, чтобы они перепроектировали то, что внутри (по крайней мере, я не хочу облегчать им задачу).

Если я запутываю код, разве это не запутывает и API?

Мы смотрим на smartAssembly, и мы будем благодарны за любые отзывы о продукте.

Ответы [ 4 ]

2 голосов
/ 17 марта 2010

Это может быть не вариант для вас, но подумайте о защите алгоритмов, никогда не раздавая их. Можете ли вы предоставить обработку через веб-сервис, .asmx или WCF?

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

2 голосов
/ 17 марта 2010

Запутать это. Инструменты запутывания не запутывают общедоступный API, поскольку это может нарушить внешний код, который зависит от него.

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

Вы упомянули smartAssembly. Существует также Dotnetreactor , Dotfuscator и обфускатор с открытым исходным кодом: шарпобфускатор .

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

Хороший обфускатор кода возьмет список исключений, чтобы не запутывать, и в ОБЩЕМ есть переключатель, чтобы ТОЛЬКО запутывать детали реализации и не затрагивать общедоступный API (классы, свойства и т. Д.). Таким образом, если вы правильно написали код (фасад общедоступен, все детали реализации не являются общедоступными), это должно хорошо сработать.

...