zoukankan      html  css  js  c++  java
  • XSS攻击的防御

    XSS攻击的防御

    XSS 攻击是什么

    XSS 又称 CSS,全称 Cross SiteScript,跨站脚本攻击,是 Web 程序中常见的漏洞,XSS 属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有 XSS 漏洞的网站中输入(传入)恶意的 HTML 代码,当其它用户浏览该网站时,这段 HTML 代码会自动执行,从而达到攻击的目的。如,盗取用户 Cookie 、破坏页面结构、重定向到其它网站等。

    Python 中的防御方法

    利用 BeautifulSoup 模块过滤掉存在危险的 HTML 标签。

    先利用 BS 模块获得 BS 对象,在 BS 对象中查找非法标签并通过 decompose 函数过滤掉,最后存到数据库的是 BS 对象的字符串化。

    from bs4 import BeautifulSoup
    def add_article(request):
        if request.method == "POST":
            title = request.POST.get("title")
            content = request.POST.get("article_content")
            user = request.user
            bs = BeautifulSoup(content, "html.parser")
            desc = bs.text[0:150] + '...'
            # 过滤非法标签
            for tag in bs.find_all():
                if tag.name in ["script","link"]:
                    tag.decompose()
            article_obj = models.Article.objects.create(user=user, title=title, desc=desc)
            models.ArticleDetail.objects.create(content=str(bs), article=article_obj)
    
            return HttpResponse("添加成功!")
        return render(request, "add_article.html")
    

  • 相关阅读:
    14-补充内容:MySQl创建用户和授权
    15-可视化工具Navicat的使用
    11-数据的增删改
    12-单表查询
    09-完整性约束
    10-外键的变种 三种关系
    07-数据类型
    08-数据类型(2)
    Mysql 基本语法
    E. K-periodic Garland
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9803250.html
Copyright © 2011-2022 走看看