feat: Add some IP limiting
All checks were successful
Build Docker / Build Image (push) Successful in 39s
All checks were successful
Build Docker / Build Image (push) Successful in 39s
This commit is contained in:
14
gift.py
14
gift.py
@@ -61,11 +61,21 @@ def gift(name,email,referer, ip,api=False):
|
|||||||
|
|
||||||
# Check if the user has already submitted
|
# Check if the user has already submitted
|
||||||
if ip != os.getenv('admin_ip') and not api:
|
if ip != os.getenv('admin_ip') and not api:
|
||||||
|
ip_first = ip.split('.')[0]
|
||||||
|
ip_block = 0
|
||||||
for gift in gifts:
|
for gift in gifts:
|
||||||
if gift['email'] == email:
|
if gift['email'] == email:
|
||||||
return "You have already submitted a gift request"
|
return "You have already submitted a gift request"
|
||||||
if gift['ip'] == ip:
|
if gift['ip'] == ip:
|
||||||
return "You have already submitted a gift request"
|
return "You have already submitted a gift request"
|
||||||
|
if gift['ip'].startswith(ip_first):
|
||||||
|
if 'time' in gift and gift['time'] > (time.time() - interval*4):
|
||||||
|
ip_block += 1
|
||||||
|
if 'time' not in gift:
|
||||||
|
ip_block += 1
|
||||||
|
|
||||||
|
if ip_block > 2:
|
||||||
|
return "You have been rate limited<br>Contact Nathan.Woodburn if you think this is a mistake"
|
||||||
|
|
||||||
if api:
|
if api:
|
||||||
for gift in gifts:
|
for gift in gifts:
|
||||||
@@ -73,13 +83,13 @@ def gift(name,email,referer, ip,api=False):
|
|||||||
return "You have already submitted a gift request"
|
return "You have already submitted a gift request"
|
||||||
if gift['name'] == name:
|
if gift['name'] == name:
|
||||||
return "You have already submitted a gift request"
|
return "You have already submitted a gift request"
|
||||||
|
|
||||||
# Add the user to the list
|
# Add the user to the list
|
||||||
gifts.append({
|
gifts.append({
|
||||||
'name': name,
|
'name': name,
|
||||||
'email': email,
|
'email': email,
|
||||||
'referer': referer,
|
'referer': referer,
|
||||||
'ip': ip
|
'ip': ip,
|
||||||
|
'time': time.time()
|
||||||
})
|
})
|
||||||
|
|
||||||
previous_gifts.append({
|
previous_gifts.append({
|
||||||
|
|||||||
Reference in New Issue
Block a user