views:

171

answers:

3

I Program my local schools program launcher which allows students to get on the internet with an randomly generated key provided by a teacher. This is done by changing the proxy in Internet explorer to the one needed for the internet and the wb filter.

With the schools website and learning resources gradually moving to offsite hosting the internet key is needed for the students to access them. What the school would like is a way to enable these websites without unblocking the rest of the internet unless the internet key is given to the student.

The two ways ive come up with doing this by googleing is to block all websites in IE content adviser exept those that are allowed wthout the key. Or to create anouther proxy in delphi which the program can make ie point to and will only allow certain websites through to the real proxy.

I am reasonble fluent in simple delphi functions with an a level in computing but dont have a clue where to start with this and would appreciate any help.

+5  A: 

Don't go through the DIY path - use a proxy with blacklist/whitelist functionalities, you can also set up a "transparent proxy" through which all internet traffic is routed and doesn't require to setup the proxy in browsers. You can also use proxy authentication to setup who can access what. In Delphi you will end up to write a proxy with the same functionalities. If you don't have a very good rason to write your own proxy, it's far better to go through an already existing solutions, which also is already tested by a lot of users. There are commercial and opensource/free ones.


If you really like to write a proxy in Delphi:

  • A good knowledge of how TCP, HTTP(S), and a proxy works is required.
  • The application needs to be a service, and should be robust or accessing the Internet may be become impossible.
  • The application will have to serve concurrent requests, thereby it needs to be multithreaded (Indy offers a basic HTTP proxy component - how well it scales I do not know, and it implements basic features only).
  • If you need authentication, knowledge of authentication methods and if integrated authentication is needed, how Windows auhtentication works.
    • It should be tested with all the browser type used.

Although a very interesting app to write from scratch if you liked to learn about that all, if you have a "business need" it's better to use an already existing one.

ldsandon
+1 for transparant proxy; though I hate vodafone for having a transparent proxy when using their UMTS data services... I think though that this question is more appropriate for serverfault.com
Jeroen Pluimers
Of course if he needs to know how to setup a proxy serverfault is the right site. I edited my answer to make it more useful for anybody interested in writing a proxy in Delphi.
ldsandon
A: 

+1 and the proxy may cache some of the Internet resources, so the whole Internet experience will be smoother with such a tool.

I'll recommend using a linux box (some old PC can be revamped into this) with Squid, just to separate your students network to the Internet. There is a lot of info on the Internet about that, and also dedicated linux distributions: a lot of schools around the world had the same problem!

A.Bouchez
A: 

OpenDNS is the best place to start. Put that up, set all PCs to use it, and that'll take care of most of your problems.

Chris Thornton