我想用 Delphi 7 编写后台服务,以阻止任何浏览器加载特定的 URL。这可能吗?
谁能指出我的方向?
提前致谢。
谢恩
有两种方法,其中第二种在技术上是最好的:
我曾在互联网过滤软件工作过,我可以告诉你两者都是大事业。我们最初采用第一种方法,然后切换到另一种,因为它在技术上更好。[而且我们从未完成过渡,因为公司倒闭了;-(]
我们没有编写自己的 LSP(这本身就是一项大工作),而是使用了Komodia的产品。尽管他们是为 C 编写的,但人们在回答我们有关移植到 Delphi 的问题时非常乐于助人。
但正如我之前所说,这很重要:您必须处理 32 位和 64 位代码、http 与 https、保护服务不被停止等。您可以找到的任何非编程解决方案都更好(尽管很容易规避) .
如果您仍然想编程:准备使用 LSP 进行 1 人年的编码。
服务,不,我不这么认为。但是您可以编辑“hosts”文件,使 url 的域指向 127.0.0.1。您可以创建一个“保护”此文件的服务,尽管服务本身必须具有更高的权限才能编辑它,当然,如果用户有权这样做,服务本身也可以被杀死。
无论如何,如果您设法编辑文件,浏览器将无法通过域名找到服务器。当然,不能以这种方式阻止具有 IP 地址的 URL,您也不能阻止特定的 URL,只能阻止整个域。
但总的来说,这不是使用自定义服务来解决的问题,而是在 PC 或路由器上的防火墙中解决。
For Internet Explorer, you can write a Browser Helper Object that IE itself loads and passes browser events to. The BHO can then accept/reject URLS on a per-request basis as needed.