Применение условий лицензии в моем приложении ASP.NET [закрыто]

StackOverflow https://stackoverflow.com/questions/630052

  •  08-07-2019
  •  | 
  •  

Вопрос

У меня есть приложение ASP.Net, которое размещено на веб-серверах моих корпоративных клиентов в их внутренних сетях.

Я хочу применить различные известные условия лицензирования (срок действия / количество пользователей и т. д. и т. д.)

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

Затем я планирую использовать специальный Http-модуль безопасности для расшифровки зашифрованного файла. извлекать и хранить термины в памяти (Приложение?), а затем применять их во время каждого запроса страницы для соответствующей области приложения.

Есть ли лучший подход для обеспечения соблюдения условий лицензии для веб-приложения?

Это было полезно?

Решение

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

С точки зрения безопасности это относительно безопасно, если вы на самом деле не предоставляете исходный код. Единственным недостатком является возможность того, что они будут дизассемблировать ваш код в попытке извлечь парольную фразу или другую технологию шифрования (это также может быть справедливо и для вашего подхода Httpmodule). Это не , но меня это беспокоит, так как я работаю в основном с компаниями из списка Fortune 500, и у меня есть юридическое соглашение с ними, которое включает «без разборки». пункт. Подавляющее большинство компаний просто не будут рисковать юридической угрозой, которую они понесут, делая это только для того, чтобы получить некоторые дополнительные функции или расширить свою базу данных. С другой стороны, если вы распространяете их среди тысяч анонимных пользователей, это может быть другой историей.

Обновление: если вы не используете SQL Server, вы также можете использовать некоторую форму шифрования на основе кода для сохранения / получения информации о лицензировании. Если вам нужен класс шифрования, я загрузил простой, но чрезвычайно сильный класс AES для предыдущий ответ .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top