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")
    

  • 相关阅读:
    [leetcode-135-Candy]
    [leetcode-151-Reverse Words in a String]
    [leetcode-139-Word Break]
    [leetcode-129-Sum Root to Leaf Numbers]
    [leetcode-143-Reorder List]
    [leetcode-141-Linked List Cycle]
    oracle 环境变量(中文显示乱码)
    Oracle 自增长id
    Spring.net 事件的注入
    Spirng.net 替换任意方法
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9803250.html
Copyright © 2011-2022 走看看