Django框架中进行XSS过滤 防止用户输入恶意代码

鳄鱼君Ba

发表文章数:514

热门标签

,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python教程 » Django框架中进行XSS过滤 防止用户输入恶意代码

Django框架中的后台编辑器 KindEditor的下载和基本使用这篇文章中,我们已经知道了如何进行文章添加,那么

class XssFilter():
	__inistance=None
	def __init__(self):
		self.valid_tags={
		"font":["size","color","face","style"],
		"b":[],
		"div":[],
		"span":[],
		"table":["border","cellspacing","cellpadding"],
		"th":["colspan","rowspan"],
		"ta":[],
		"a":[],
		"img":["src","alt","name"],
		"p":[],
		"pre":["class"],
		"hr":["class"],
		"strong":[],

		}
	def __new__(cls,*args,**kwargs):
		 if cls.__instance:
            return cls.__instance
        else:
            cls.__instance=object.__new__(cls,*args,**kwargs)
            return cls.__instance
    def process(self,content):
    	soup=BeautifulSoup(content,'lxml')
    	#遍历所有的HTML标签
    	for tag in soup.find_all():
    		#如果标签不在白名单中,隐藏
    		if tag,name not in self.valid_tags:
    			tag.hidden=True
    			if tag.name not in ["htnl","body"]:
    				tag.hidden=True
    				tag.clear()
				continue
			#判断标签的属性是否在白名单中,不在话清除掉
			attr_rules=self.valid_tags[tag.name]
			keys=list(tag.attrs.keys())
			for key in kyes:
				if key not in attr_rules:
					del tag[key]
		return soup.decode()

未经允许不得转载:作者:鳄鱼君Ba, 转载或复制请以 超链接形式 并注明出处 鳄鱼君Ba
原文地址:《Django框架中进行XSS过滤 防止用户输入恶意代码》 发布于2020-05-05

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

2 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册