python删除恶意代码(二)

继上文,如果网页中被插入了恶意代码,会导致弹窗等插件一直弹出,影响我们的使用,由此,可以使用python代码解决这个问题。

例如,网页代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script language="JavaScript">{
     var xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
     xmldoc.load("<root><child></child></root>");
     alert(xmldoc.xml);
}
</script>
<script language="JavaScript">
    alert("hello world");
</script>
</body>
</html>

其中被插入的恶意代码为:

<script language="JavaScript">{
     var xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
     xmldoc.load("<root><child></child></root>");
     alert(xmldoc.xml);
}
</script>
<script language="JavaScript">
    alert("hello world");
</script>

网页显示:

要对这整个网页代码进行删除,则需要定位代码中的恶意代码标签,每一句定位准确,就可以准确的删除恶意代码,例如,定位每一句标签的python代码为:

import os
#获取templaters目录的路径

curr_path=os.getcwd()   #获取当前目录
templaters_path=os.path.join(curr_path,'templaters')   #使用join函数拼接得到tempalters目录路径
#使用os.listdir()函数获取指定目录中的文件和文件夹
all_files=os.listdir(templaters_path)
#遍历所有文件
for file in all_files:
    path=os.path.join(templaters_path,file)   #使用join函数拼接得到file的完整路径
    if os.path.isfile(path):   #判断是否是文件os.path.isfile(path),判断是否是目录os.path.isdir(path)
        openfile=open(path,'r')   #以只读方式打开文件
        lines=openfile.readlines()   #读取该文件的所有行
        rule1='<script language="JavaScript">{'
        rule2='     var xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");'
        rule3='     xmldoc.load("<root><child></child></root>");'
        rule4='     alert(xmldoc.xml);'
        rule5='}'
        rule6='</script>'
        new_lines=[]   #创建空列表
        tmp=[]
        flag=0
        for line in lines:   #遍历文件的所有行
            if rule1 in line:   #如果rule变量内的内容存在于line,则跳出该轮循环执行下一轮循环
                tmp.append(line)
                flag=1
            elif rule2 in line and flag==1:
                tmp.append(line)
                flag=2
            elif rule3 in line and flag==2:
                tmp.append(line)
                flag=3
            elif rule4 in line and flag==3:
                tmp.append(line)
                flag=4
            elif rule5 in line and flag==4:
                tmp.append(line)
                flag=5
            elif rule6 in line and flag==5:
                tmp.append(line)
                tmp=[]
                flag=6
            elif flag!=6:
                new_lines.extend(tmp)
                new_lines.append(line)
                flag=0
                tmp=[]
                break
            else:   #如果不存在,则将读取的内容写入到列表中
                new_lines.append(line)
        openfile.close()   #关闭文件
        writefile=open(path,'w')
        writefile.writelines(new_lines)   #将列表中的内容写入到文件
        writefile.close()   #关闭文件

 运行代码,查看运行后的结果:

则,恶意代码被删除。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
#### 项目模块及功能介绍 本系统包括登录模块、注册模块、商家用户模块、买家用户模块、系统管理员模块。具体功能介绍如下: + 登录模块 - [x] 选择管理员、商家用户、用户三种身份登录 - [x] 将输入的用户名与密码与数据库中的数据进行对比验证 + 注册模块 - [x] 选择商家用户、用户两种身份注册 - [x] 将注册信息(用户名、密码、电话、地址)存入数据库 + 商家用户模块 - [x] 维护商家个人信息(店名、地址、联系电话、商家图片) - [x] 修改商家个人登录密码 - [x] 维护菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜),包括添加、删除、修改 - [x] 对菜品列表按照销量或价格排序查看 - [x] 查看顾客订单与完成情况 - [x] 对顾客订单按照时间或价格排序查看 - [x] 查看顾客对商家当前菜品的评论(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间) + 买家用户模块 - [x] 维护买家用户个人信息(用户名、地址、联系电话) - [x] 修改用户个人登录密码 - [x] 查看商家列表(店名、地址、联系电话、商家图片) - [x] 查看商家菜单列表(菜品名称、菜品描述、营养成分、销量、价格、菜品图片、是否为招牌菜) - [x] 对菜单列表按销量或价格排序查看 - [x] 筛选出菜单列表中的特色菜 - [x] 将菜品加入购物车 - [x] 维护购物车,包括选择、删除、搜索、修改数量 - [x] 对购物车进行结算,结算时商品价格可促销打折,可选择堂食或外卖两种就餐方式 - [x] 查看商家评价信息 - [x] 查看以完成订单 - [x] 对当前订单按时间或价格排序查看 - [x] 查看已发表评价(订单号、顾客用户名、餐厅名、是否完成、花费、评分、评语、交易时间) - [x] 查看可发表评价的订单 - [x] 对可发表评价的订单按交易时间或价格排序查看 + 系统管理员模块 - [x] 查看各商家获得的评价信息 - [x] 对各商家获得的评价信息按照评分升序查看 - [x] 移除恶意营销商家 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖锤喵喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值