Предотвратить пользователям возможность доступа к веб-странице через веб-браузер? - PullRequest
1 голос
/ 18 апреля 2010

Мы с другом работаем над программой. Эта программа собирается отправить данные GET на нашу веб-страницу. Однако мы не хотим, чтобы пользователи обращались к веб-странице каким-либо иным способом, кроме программы. Мы можем запретить пользователям совместно использовать программу с использованием аутентификации HWID, но ничто не мешает им использовать сканер пакетов для получения URL-адреса веб-страницы. Мы подумали об аутентификации агента пользователя, которую мы реализуем, но агенты пользователя могут быть легко подделаны.

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

Даже если у вас нет ответа, который полностью сработает, все, что поможет их удержать, будет хорошо.

В настоящее время мы будем реализовывать:

HWID Аутентификация для использования программы Аутентификация агента пользователя для доступа к веб-странице Мгновенный черный список IP-адресов для всех, кто получает доступ к веб-странице без соответствующего User-Agent

Ответы [ 4 ]

4 голосов
/ 18 апреля 2010

Не полагайтесь на пользовательский агент или любой другой отпечаток браузера, HTTP-заголовки легко подделать / подделать.

Вы можете добавить в запрос какой-нибудь секретный токен (например, пароль / логин) и отправить его через SSL, чтобы предотвратить перехват.

Или лучше использовать SSL-сертификат клиента.

Редактировать Собираетесь ли вы распространять программу VB? Если это так, как упомянул Бобинс, вы не сможете помешать решительному хакеру подделать запросы. Вы можете поднять планку, но это будет безопасность через неизвестность . Даже с сертификатами клиента хакер сможет извлечь сертификат из вашей программы и отправить измененные запросы.

Пока вы принимаете запросы от клиента, эти запросы могут быть подделаны. Смирись с этим.

2 голосов
/ 18 апреля 2010

Один из вариантов - вы можете установить зашифрованный токен в заголовке запроса.

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

0 голосов
/ 18 апреля 2010
  • Попробуйте зашифровать все веб-страницы с помощью длинного ключа (512 бит или более), используя HWID в качестве соли.

    Таким образом, только ваша программа может декодировать его и отображать как веб-страницу.

    en.wikipedia.org / вики / Salt_% 28cryptography% 29

  • C # & VB.net здесь:

    obviex.com / образцы / hash.aspx

0 голосов
/ 18 апреля 2010

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

...