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

  • 相关阅读:
    POJ 1088 滑雪
    POJ 2243 Knight Moves
    poj1847
    poj1995
    poj2230
    poj2007
    poj2376
    socket与TcpListener/TcpClient/UdpClient 的区别及联系
    利用DescriptionAttribute定义枚举值的描述信息
    可以关注的Android网上信息
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9803250.html
Copyright © 2011-2022 走看看