0

我负责一个使用互联网在站点之间传输数据的应用程序,并且一些客户对付款感到尴尬,因此我们需要一种机制来允许我们切断非付款人的服务。我想防止管理员使用防火墙来阻止我们的检查,但相反,我想为我们公司的网站因某种原因消失并且无法访问提供一些余地。

我想象的方案是:

server makes twice daily check to web page using a URL like:
http://www.ourcompany.com/check.php?myID=GUID&Code=MyCode

然后,这将返回一个响应,其中包含任何感兴趣的内容或 GUID 和一个值。

GUID=0

该零表示服务器应该停止操作。为了使其再次工作,服务器将每 5 分钟检查一次相同的信息,直到该值与它认为应该将其传入的代码转换为的值匹配。

这个方案对我来说很有意义,但问题实际上是如何防止阻塞。鉴于我们知道我们必须能够访问互联网,我们应该在无法从我们的网络服务器获得响应的情况下继续操作多长时间?是 14 天,然后我们还是把它关掉是最好的方法吗?

4

3 回答 3

1

我最终使用的解决方案与我建议的差不多。是的,使用此处概述的工具可以将其击败,但总比没有好。

该应用程序每天检查以访问包含使用公钥加密加密的控制文件的网站。它在内存中解密,如果找到它的 GUID,那么它必须匹配一个代码。要禁用该操作,代码设置为 0(零),这将始终失败。禁用时,它每两分钟检查一次以允许快速恢复。还有一种手动机制可以生成代码,该代码可以在服务器出现故障时工作一周。

该代码最多允许 14 天不连接到服务器,然后才会将其视为故意阻止它。10 天后,它会显示一条错误消息,要求他们联系支持。

于 2009-08-31T14:29:50.937 回答
0

这种方法真的很容易规避:只需使用本地 dns 服务器将 www.ourcompany.com 指向本地机器,或者使用 http 代理。然后用户可以向程序返回他们想要的任何响应。

假设用户没有规避检查,那么您在没有确认的情况下继续操作多长时间是业务决策,而不是编程决策。

于 2009-04-17T08:19:12.710 回答
0

用户可以使用诸如 OWASP WebScarab 之类的工具来动态更改值以颠覆您的安全模型。您需要包含一些更困难的内容,例如需要安全通道、比较公钥等。

于 2009-04-18T13:31:04.200 回答