阻止用户通过网络浏览器访问网页?

时间:2010-04-18 08:58:16

标签: php vb.net user-agent hardware-id

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

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

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

目前我们将实施:

使用该程序的HWID身份验证 用户代理验证以访问网页 即时IP黑名单,任何人在没有适当的用户代理的情况下访问该网页

4 个答案:

答案 0 :(得分:4)

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

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

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

一个选项是使用并验证Web浏览器不发送的自定义标头,我为自己的程序做了类似的事情。做你正在做的其他验证的ontop。在服务器端,让服务器脚本验证自定义标头,如果标头错误则重定向

答案 3 :(得分:0)

  • 尝试使用长密钥(512位或更多)加密所有网页,使用 HWID 作为盐。

    这样只有你的程序才能对其进行解码并将其呈现为网页。

      

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

  • C#& VB.net在这里:

      

    obviex.com/samples/hash.aspx