Securing SimpleXMLRPCServer?

John Abel john.abel at pa.press.net
Wed Jul 10 04:02:26 EDT 2002


The revised server code, looks like this:

import sys, os, gzip, smtplib, SimpleXMLRPCServer, string

class AuthenticatingSimpleXMLRPCRequestHandler
(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
    UnknownIP = 'Error'

    def _dispatch( self, method, params ):
        print "client_address %s:" % self.client_address
        if self.client_address not in
["144.178.233.83","144.178.234.189", "localhost"] :
            raise UnknownIP, "Client IP Is Not Authorised"
        else:
            SimpleXMLRPCServer.SimpleXMLRPCRequestHandler._dispatch(
self, method, params)


def GetFiles(FileRequest):
    print FileRequest
    RetrFile = open(FileRequest,"r")
    FileContents = "Not Found"
    for FileLine in RetrFile:
        if FileContents == None:
            FileContents = FileLine
        else:
            FileContents = FileContents + FileLine
    
    return FileContents

if __name__== "__main__":

    XMLRPCServer = SimpleXMLRPCServer.SimpleXMLRPCServer (
("127.0.0.1",8000), AuthenticatingSimpleXMLRPCRequestHandler )
    XMLRPCServer.register_function(GetFiles)
    XMLRPCServer.serve_forever()

Thanks again for your help and patience.

Regards

John






More information about the Python-list mailing list