15.1. Problem and Solution

The Proxy Design Pattern has always seemed like second nature to me. I remember hiding in my parent's basement, on the old computer, and reading some material about security exploits and penetration testing. The one thing that everyone harped on over and over was to use a proxy. Whenever a security exploit was tested, the use of a proxy was expected to provide a layer of anonymity between the tester and the target system. A proxy, by design, accepts and then retransmits the data it receives. In this case, the hope was that the origin of the test was shadowed by the intermediate usage of proxies.

Other more upright and common implementations of proxies exist, however. Proxy servers, which work as a web resource cache, are in place on some corporate networks. The internal network browsers communicate directly to the proxy server. It then checks its cache to determine if it has the resource on its local disk. If it does, it replies with that. Otherwise, it forwards the request transparently. Other networks take this a step further by installing a content-filtering proxy. This watches the traffic for websites that are against company policy. If the proxy finds a website that employees should be restricted from viewing, it stops the attempt. All other requests are sent transparently through. From the browsers' point of view, they don't know they're surfing through a proxy — well, that is until they try to go to a restricted page!

The Proxy Design Pattern ...

Get Professional PHP Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.