示例#1
0
    def test_is_same_primary_domain(self):
        domain1 = 'localhost'
        domain2 = 'localhost'
        self.assertTrue(is_same_primary_domain(domain1, domain2))

        domain1 = 'localhost'
        domain2 = 'test'
        self.assertFalse(is_same_primary_domain(domain1, domain2))

        domain1 = 'com'
        domain2 = 'example.com'
        self.assertFalse(is_same_primary_domain(domain1, domain2))

        domain1 = 'example.com'
        domain2 = 'example.com'
        self.assertTrue(is_same_primary_domain(domain1, domain2))

        domain1 = 'www.example.com'
        domain2 = 'example.com'
        self.assertTrue(is_same_primary_domain(domain1, domain2))

        domain1 = 'wwwexample.com'
        domain2 = 'example.com'
        self.assertFalse(is_same_primary_domain(domain1, domain2))

        domain1 = 'www.example.com'
        domain2 = 'www2.example.com'
        self.assertTrue(is_same_primary_domain(domain1, domain2))

        domain1 = 'xxx.www.example.com'
        domain2 = 'xxx.www2.example.com'
        self.assertTrue(is_same_primary_domain(domain1, domain2))
示例#2
0
    def check_origin(self, origin):
        cows = options.cows
        parsed_origin = urlparse(origin)
        origin = parsed_origin.netloc
        origin = origin.lower()
        logging.debug('origin: {}'.format(origin))

        host = self.request.headers.get('Host')
        logging.debug('host: {}'.format(host))

        if cows == 0:
            return origin == host
        elif cows == 1:
            return is_same_primary_domain(origin.rsplit(':', 1)[0],
                                          host.rsplit(':', 1)[0])
        else:
            return True
    def check_origin(self, origin):
        if self.origin_policy == '*':
            return True

        parsed_origin = urlparse(origin)
        netloc = parsed_origin.netloc.lower()
        logging.debug('netloc: {}'.format(netloc))

        host = self.request.headers.get('Host')
        logging.debug('host: {}'.format(host))

        if netloc == host:
            return True

        if self.origin_policy == 'same':
            return False
        elif self.origin_policy == 'primary':
            return is_same_primary_domain(netloc.rsplit(':', 1)[0],
                                          host.rsplit(':', 1)[0])
        else:
            return origin in self.origin_policy