fsd
This commit is contained in:
parent
5d73bb34e8
commit
d833e3916c
8 changed files with 41 additions and 105 deletions
|
@ -257,6 +257,34 @@ def sanitize(sanitized, alert=False, comment=False, edit=False):
|
|||
|
||||
|
||||
|
||||
soup = BeautifulSoup(sanitized, 'lxml')
|
||||
|
||||
links = soup.find_all("a")
|
||||
|
||||
domain_list = set()
|
||||
|
||||
for link in links:
|
||||
|
||||
href = link.get("href")
|
||||
if not href: continue
|
||||
|
||||
url = urlparse(href)
|
||||
domain = url.netloc
|
||||
path = url.path
|
||||
domain_list.add(domain+path)
|
||||
|
||||
parts = domain.split(".")
|
||||
for i in range(len(parts)):
|
||||
new_domain = parts[i]
|
||||
for j in range(i + 1, len(parts)):
|
||||
new_domain += "." + parts[j]
|
||||
domain_list.add(new_domain)
|
||||
|
||||
bans = g.db.query(BannedDomain.domain).filter(BannedDomain.domain.in_(list(domain_list))).all()
|
||||
|
||||
if bans: abort(403, description=f"Remove the banned domains {bans} and try again!")
|
||||
|
||||
|
||||
signal.alarm(0)
|
||||
|
||||
return sanitized
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue