1

我和我的朋友正在开发一个程序。该程序将向我们的网页提交 GET 数据。但是,我们不希望用户通过程序以外的任何其他方式访问网页。我们可以阻止用户使用 HWID 身份验证共享程序,但没有什么能阻止他们使用数据包扫描器获取网页的 URL。我们考虑过将实施的用户代理身份验证,但用户代理很容易被欺骗。

所以我的问题是,我们如何防止用户直接访问网页,而不是通过程序?

即使您没有完全有效的答案,任何有助于阻止他们的事情都会很好。

目前我们将实施:

HWID 身份验证使用程序用户代理身份验证访问网页即时 IP 黑名单对任何访问网页的人没有适当的用户代理

4

4 回答 4

4

不要依赖用户代理或任何类型的浏览器指纹,HTTP 标头很容易伪造/欺骗。

您可以在请求中添加一些秘密令牌(例如密码/登录名)并通过 SSL 发送以防止窃听。

或者更好的是,使用 SSL 客户端证书。

编辑您要分发 VB 程序吗?如果是这样,正如 bobince 所提到的,您无法阻止坚定的黑客伪造请求。你可以提高标准,但它会通过默默无闻来保证安全。即使使用客户端证书,黑客也能够从您的程序中提取证书并发送修改后的请求。

只要你接受来自客户端的请求,这些请求就可以被伪造。处理它。

于 2010-04-18T09:09:06.363 回答
2

一种选择是您可以在请求标头中设置加密令牌。

Token 只能使用一次。如果再次发送相同的令牌,服务器将拒绝它,这意味着您必须在服务器端维护已使用令牌的副本。

于 2010-04-18T09:07:55.870 回答
0

一种选择是使用并验证 Web 浏览器不发送的自定义标头,我为自己的程序做了类似的事情。在您正在执行的其他验证之上执行此操作。在服务器端,让您的服务器脚本验证自定义标头并在标头错误时简单地重定向

于 2010-04-18T09:05:34.683 回答
0
  • 尝试使用长密钥(512 位或更多)加密您的所有网页,使用HWID作为盐。

    这样,只有您的程序可以对其进行解码并将其呈现为网页。

    en.wikipedia.org/wiki/Salt_%28cryptography%29

  • C# & VB.net 在这里:

    obviex.com/samples/hash.aspx

于 2010-04-18T10:27:45.047 回答