Click here to Skip to main content
15,743,299 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
what is the best design for a http blocker app?

the requirement is to rediredct certain url's and interact with the user's desktop showing the user a message when a URL is blocked. The memory footprint on the client should be minimal.

I have this model in mind..

3 main components:

1. LSP/WFP driver (3rd party component) - which includes proxy to redirect and show appropriate message in browser
2. Windows Service to manage provide driver with URLs and receive messages from Driver
3. User Mode App (WFP) to a) receive triggers to show blocking/warning notification to user and b) view other related info

1. Load the driver with a list of URLs to be blocked from a windows service
2. When blocking, the driver signals an event to windows service which in turn signals a user mode application (WPF) to show the block and/or warning message.

1. Is there a better way/architecture I'm just not thinking of?

2. I am concerned about terminal servers and citrix servers. How can I implement the tray icon/user desktop interaction in the best and least memory hogging way?

3. The last one concerns the Installation. What installer do you recommend I use. I have used the standard VS installer to this stage but feel I may need more flexibility for this project. Would nullsoft be a good choice? (the 3rd party LSP/WFP driver has it's own installation routine)

Updated 17-Jan-12 17:27pm

1 solution

The standard answer for this is a proxy server. Anything off the shelf will do this (except for the "interact with users Desktop" part.)

You would normally send a "blocked" page back to the browser instead of throwing up a dialog box of some kind.

You don't have to install anything on the workstation at all to do this. You just need to make sure the users cannot get out to the internet without going through your proxy.
Share this answer
Matt Luthi 17-Jan-12 23:25pm    
Hi Dave,

thanks for looking at my question and answering it. What you write makes sense but the requirement for the "interact with desktop" is not negotiable due to the nature of the application which I am not able to disclose further details about. The proxy is already part of the final solution. I have updated the question to include the proxy details as well.

Dave Kreskowiak 17-Jan-12 23:46pm    
Well, you have a BIG problem. Your proxy, or whatever, would now need TWO components, one being the proxy and the other being an application that is always running (NOT a service!) and waiting for some kind of message from the proxy that the URL is blocked. Why?

Because on Windows 7 services cannot display a UI on the users desktop AT ALL. They will only be shown on an alternate desktop that the user will be prompted to switch to.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900