def process(self, request, render_options, operation, data):
        filter_names = render_options.get_filters(adblock_rules=self.rules)

        if filter_names == ['none']:
            return request

        if not filter_names:
            if self.rules.filter_is_known('default'):
                filter_names = ['default']
            else:
                return request

        url = str(request.url().toString())
        browser_url = self._get_browser_url(request)
        domain = urlsplit(browser_url).hostname or ''
        # XXX: here we're using domain of a parent frame
        # for requests coming from iframes.
        options = {'domain': domain}
        blocking_filter = self.rules.get_blocking_filter(
            filter_names, url, options)
        if blocking_filter:
            if self.verbosity >= 2:
                msg = "Filter %s: dropped %s %s" % (
                    blocking_filter, render_options.get_uid(),
                    request_repr(request, operation))
                log.msg(msg, system='request_middleware')
            drop_request(request)
        return request
Exemplo n.º 2
0
    def process(self, request, render_options, operation, data):
        filter_names = render_options.get_filters(adblock_rules=self.rules)

        if filter_names == ['none']:
            return request

        if not filter_names:
            if self.rules.filter_is_known('default'):
                filter_names = ['default']
            else:
                return request

        url = str(request.url().toString())
        browser_url = self._get_browser_url(request)
        domain = urlsplit(browser_url).hostname or ''
        # XXX: here we're using domain of a parent frame
        # for requests coming from iframes.
        options = {'domain': domain}
        blocking_filter = self.rules.get_blocking_filter(filter_names, url, options)
        if blocking_filter:
            if self.verbosity >= 2:
                msg = "Filter %s: dropped %s %s" % (
                    blocking_filter,
                    render_options.get_uid(),
                    request_repr(request, operation)
                )
                log.msg(msg, system='request_middleware')
            drop_request(request)
        return request
Exemplo n.º 3
0
 def process(self, request, render_options, operation, data):
     allowed_domains = render_options.get_allowed_domains()
     host_re = self._get_host_regex(allowed_domains, self.allow_subdomains)
     if not host_re.match(six.text_type(request.url().host())):
         if self.verbosity >= 2:
             log.msg("Dropped offsite %s" % (request_repr(request, operation),), system='request_middleware')
         drop_request(request)
     return request
 def process(self, request, render_options, operation, data):
     scheme = str(request.url().scheme()).lower()
     if scheme not in self.allowed_schemes:
         if self.verbosity >= 2:
             log.msg("Dropped %s because of URI scheme" %
                     (request_repr(request, operation), ),
                     system='request_middleware')
         drop_request(request)
     return request
Exemplo n.º 5
0
 def process(self, request, render_options, operation, data):
     scheme = str(request.url().scheme()).lower()
     if scheme not in self.allowed_schemes:
         if self.verbosity >= 2:
             log.msg(
                 "Dropped %s because of URI scheme" % (request_repr(request, operation),),
                 system='request_middleware'
             )
         drop_request(request)
     return request
Exemplo n.º 6
0
 def _configure_requests(self, request, operation, data):
     if request.hasRawHeader(b'Accept'):
         url = six.binary_type(request.url().toEncoded())
         url_path = urlparse(url).path.lower()
         accepts = bytes(request.rawHeader(b'Accept')).lower()
         if (accepts.startswith(STORED_TYPES) or _is_xml(accepts) or
                 url_path.endswith(STORED_EXTENSIONS)):
             request.track_response_body = True
         elif (accepts.startswith(IGNORED_TYPES) or
               url_path.endswith(MEDIA_EXTENSIONS)):
             drop_request(request)
Exemplo n.º 7
0
 def _configure_requests(self, request, operation, data):
     if request.hasRawHeader('Accept'):
         url = six.binary_type(request.url().toEncoded())
         url_path = urlparse(url).path.lower()
         accepts = str(request.rawHeader('Accept')).lower()
         if (accepts.startswith(STORED_TYPES) or _is_xml(accepts)
                 or url_path.endswith(STORED_EXTENSIONS)):
             request.track_response_body = True
         elif (accepts.startswith(IGNORED_TYPES)
               or url_path.endswith(MEDIA_EXTENSIONS)):
             drop_request(request)
Exemplo n.º 8
0
    def process(self, request, render_options, operation, data):
        filter_names = render_options.get_filters(adblock_rules=self.rules)

        if filter_names == ['none']:
            return request

        if not filter_names:
            if self.rules.filter_is_known('default'):
                filter_names = ['default']
            else:
                return request

        url, options = self._url_and_adblock_options(request, render_options)
        blocking_filter = self.rules.get_blocking_filter(
            filter_names, url, options)
        if blocking_filter:
            if self.verbosity >= 2:
                msg = "Filter %s: dropped %s %s" % (
                    blocking_filter, render_options.get_uid(),
                    request_repr(request, operation))
                log.msg(msg, system='request_middleware')
            drop_request(request)
        return request
Exemplo n.º 9
0
    def process(self, request, render_options, operation, data):
        filter_names = render_options.get_filters(adblock_rules=self.rules)

        if filter_names == ['none']:
            return request

        if not filter_names:
            if self.rules.filter_is_known('default'):
                filter_names = ['default']
            else:
                return request

        url, options = self._url_and_adblock_options(request, render_options)
        blocking_filter = self.rules.get_blocking_filter(filter_names, url, options)
        if blocking_filter:
            if self.verbosity >= 2:
                msg = "Filter %s: dropped %s %s" % (
                    blocking_filter,
                    render_options.get_uid(),
                    request_repr(request, operation)
                )
                log.msg(msg, system='request_middleware')
            drop_request(request)
        return request
Exemplo n.º 10
0
    def process(self, request, splash_request, operation, data):
        filter_names = [f for f in getarg(splash_request, "filters", default="").split(',') if f]

        if filter_names == ['none']:
            return request

        if not filter_names:
            if self.rules.filter_is_known('default'):
                filter_names = ['default']
            else:
                return request

        url, options = self._url_and_options(request, splash_request)
        blocking_filter = self.rules.get_blocking_filter(filter_names, url, options)
        if blocking_filter:
            if self.verbosity >= 2:
                msg = "Filter %s: dropped %s %s" % (
                    blocking_filter,
                    id(splash_request),
                    request_repr(request, operation)
                )
                log.msg(msg, system='request_middleware')
            drop_request(request)
        return request
Exemplo n.º 11
0
 def abort(self):
     drop_request(self.request)
Exemplo n.º 12
0
 def abort(self):
     drop_request(self.request)