''' httpPostDataRequest.py Copyright 2006 Andres Riancho This file is part of w3af, w3af.sourceforge.net . w3af is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License. w3af is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with w3af; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ''' from core.controllers.w3afException import w3afException import core.controllers.outputManager as om from core.data.request.fuzzableRequest import fuzzableRequest import core.data.dc.dataContainer as dc class httpPostDataRequest(fuzzableRequest): ''' This class represents a fuzzable request that sends all variables in the POSTDATA. This is tipically used for POST requests. @author: Andres Riancho ( andres.riancho@gmail.com ) ''' def __init__(self): fuzzableRequest.__init__(self) self._method = 'POST' self._files = [] def getURL( self ): return self._url def getURI( self ): return self._url def setURI( self , u ): self._url = self._sanitizeURL( u ) def getData( self ): if len( self._files ) != 0: return self._fuzzable['dc'] else: return str( self._fuzzable['dc'] ) def setFileVariables( self, fileVars ): self._files = fileVars def getFileVariables( self ): return self._files def copy( self ): newFr = httpPostDataRequest() newFr.setURL( self._url ) newFr.setMethod( self._method ) newFr.setDc( self._fuzzable['dc'].copy() ) if 'headers' in self._fuzzable: newFr.setHeaders( self._fuzzable['headers'].copy() ) if 'cookie' in self._fuzzable: newFr.setCookie( self._fuzzable['cookie'] ) newFr.setFileVariables( self._files ) return newFr