When stacking a program, the data received by a proxy within a protocol is directed to the standard input. Arbitrary commands (including command line scripts, or applications) working from the standard input can be run on this data stream. The original proxy obtains the processed data back from the standard output. When stacking a command, the command to be called has to be included in the proper stack attribute of the proxy between double-quotes. This is illustrated in the following example.
Example 2.6. Program stacking in HTTP |
---|
In this example a simple 'sed' (stream editor) command is stacked into the HTTP proxy to replace all occurrences of 'http' to 'https', thus securing the HTTP connections on one side of the firewall. class MyHttp(HttpProxy): def config(self): HttpProxy.config(self) self.response_stack["GET"] = / (HTTP_STK_DATA, (V_STACK_PROGRAM, "/bin/sed '/http:/s//https:/g'")) |
© 2021 BalaSys IT Security.
Send your comments to support@balasys.hu