我负责使用互联网在网站之间传输数据的应用程序,而且有些客户在支付方面很尴尬,所以我们需要一种机制,允许我们切断非付款人的服务。我想防止管理员使用防火墙阻止我们的支票,但相反,我想给我们公司网站的一些补贴因某些原因而无法访问。
我想象的方案是:
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分钟检查一次相同的信息,直到该值与它认为传入的代码应转换为的值相匹配。
这个方案对我有意义,但问题实际上是如何防止阻止。鉴于我们知道我们必须能够访问互联网,我们应该在没有能够从我们的Web服务器获得响应的情况下继续运行多长时间?类似于14天的事情,然后我们只是以最好的方式关闭它?
答案 0 :(得分:1)
我最终使用的解决方案就像我建议的那样。是的,它可以使用这里概述的工具来解决,但它总比没有好。
应用程序每天检查以访问包含使用公钥加密加密的控制文件的网站。它在内存中解密,如果它找到了它的GUID,那么它必须匹配一个代码。要禁用该操作,代码将设置为0(零),这将始终失败。禁用时,它每两分钟检查一次,以便快速恢复。还有一种手动机制来生成代码,以便在服务器出现故障时工作一周。
代码将允许最多14天而不连接到服务器,然后将其作为故意阻止它的尝试。 10天后,它会显示一条错误消息,要求他们联系支持人员。
答案 1 :(得分:0)
这种方法很容易规避:只需使用本地DNS服务器将www.ourcompany.com指向本地计算机,或使用http代理。然后用户可以向程序返回他们想要的任何响应。
假设用户没有绕过支票,您在没有确认的情况下继续操作的时间是商业决策,而不是编程决定。
答案 2 :(得分:0)
用户可以使用OWASP WebScarab等工具动态更改值以破坏您的安全模型。您需要包含更困难的内容,例如需要安全通道,比较公钥等。