代码之家  ›  专栏  ›  技术社区  ›  mj2008

远程激活/停用和防止业务中断

  •  0
  • mj2008  · 技术社区  · 16 年前

    我负责一个使用互联网在网站之间传输数据的应用程序,一些客户在付费方面感到尴尬,因此我们需要一种机制,允许我们切断非付费者的服务。我想防止管理人员使用防火墙阻止我们的检查,但相反,我想为我们公司的网站因某些原因消失而无法访问给予一些补贴。

    我想象的计划是:

    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天,然后我们就把它关了是最好的方法吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   mj2008    15 年前

    我最后使用的解决方案和我建议的差不多。是的,使用这里概述的工具是可以击败的,但总比什么都没有要好。

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

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

        2
  •  0
  •   PiedPiper    16 年前

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

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

        3
  •  0
  •   McGovernTheory    16 年前

    用户可以使用诸如owasp-webscarab之类的工具随时更改值,以颠覆您的安全模型。您需要包括一些更困难的内容,例如需要安全通道、比较公钥等等。