关于python使用get_tld来解析域名带来的安全问题

假设我们本意是希望只接受部分域名的请求,对其他域名不作处理

举个例子:接受的域名是163.com

下面是个用正则和用get_tld的对比程序

from tld import get_tld
import re

url="http://baidu.com\mmmest.126.com"
print(url)
result=get_tld(url, as_object=True)
print(result.fld)

if not re.search(
"""^http(s)?://([A-Za-z0-9_-]*\.)*(126\.com)(:\d*)?(/.*)?$""",
url):
print("不合法")
else:
print("合法")

 

 测试结果显示用get_tld来解析域名的时候解析出126.com表示合法的,用正则来匹配发现不合法

实际在浏览器里输入http://baidu.com\mmmest.126.com,也可以看到跳转到了百度页面,baidu.com可以用来做钓鱼

 

 

posted on 2021-07-29 20:30  该用户很懒  阅读(258)  评论(0编辑  收藏  举报