Skip to content

Instantly share code, notes, and snippets.

@xavierskip
Last active July 27, 2023 08:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xavierskip/5b8d3e29653be2133ffcc77df0d1ea71 to your computer and use it in GitHub Desktop.
Save xavierskip/5b8d3e29653be2133ffcc77df0d1ea71 to your computer and use it in GitHub Desktop.
test anti img theft strategy
import unittest
import requests
right_referer = 'https://xx.com'
img_url = "https://i.xx.com/f54ae2eb228d7.jpg"
content_length = 16714
AntiTheft_content_length = 41
class TestAntiTheft(unittest.TestCase):
"""
requests headers default
"headers":{
"Accept":[
"*/*"
],
"Connection":[
"keep-alive"
],
"User-Agent":[
"python-requests/2.25.1"
],
"Accept-Encoding":[
"gzip, deflate"
]
},
"""
def __init__(self, *args, **kwargs):
self.url = img_url
self.content_length = content_length
self.AntiTheft_content_length = AntiTheft_content_length
super().__init__(*args, **kwargs)
def test_right_referer(self):
headers = {'Referer': right_referer}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.content_length)
def test_right_referer_accept_img(self):
headers = {
'Referer': right_referer,
'Accept': 'image'
}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.content_length)
def test_wrong_referer_accept_img(self):
headers = {
'Referer': 'baidu.com',
'Accept': '*'
}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.AntiTheft_content_length)
def test_wrong_referer(self):
headers = {'Referer': 'baidu.com'}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.AntiTheft_content_length)
def test_no_referer_accept_img(self):
headers = {'Accept': 'image'}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.AntiTheft_content_length)
def test_no_referer_accept_any(self):
headers = {'Accept': '*'}
r = requests.get(self.url, headers=headers)
content_length = int(r.headers["Content-Length"])
self.assertEqual(content_length, self.content_length)
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment