Search code examples
c#windowshttpwinapifiddler

Low level HTTP filtering for Windows


I would like to implement a parental control for all browsers in Windows. I am thinking in a .NET application.

My first thought was create a local HTTP proxy (like Fiddler), even use Fiddlers embeddable API. However this proxy easily can be workarounded even by a kid, just (re) setting the browsers not to use this local proxy.

So I've concluded I have to go deeper. My question, am I right? ...and how and where...

Thanks in advance


Solution

  • The "official" way to do this would be to build a filter atop the Windows Filtering Platform; it's designed for this sort of thing, and it's how Windows' own Parental Controls feature is built.

    Having said that, you can build a Parental Controls application using FiddlerCore. You would then use Group Policy to control proxy settings (Create a REG_DWORD named ProxySettingsPerUser with value 0 inside HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\InternetSettings\) such that the settings cannot be changed by non-administrative users.

    You could further bolster this by applying Firewall policies such that direct egress is blocked and only traffic going through Fiddler is permitted to leave the box.