当用户提交评论的时候,比如如下评论内容

111 <scripy>alert(111);</scripy>

这样当现实评论的时候会先弹出111弹框,再显示评论。这就是xss攻击。

所以,我们需要对评论内容进行检测,对恶意代码进行删除,不让不存到数据库。

如下解决方案:

def add_article(request):

    if request.method=="POST":
title=request.POST.get('title')
article_content=request.POST.get('article_content') # 获取评论内容
user=request.user
# 使用BeautifulSoup模块
from bs4 import BeautifulSoup
#
bs=BeautifulSoup(article_content,"html.parser")
desc=bs.text[0:150]+"..." # 过滤非法标签,会寻找到这个页面的所有标签
for tag in bs.find_all(): print(tag.name)
# 如果有非法标签
if tag.name in ["script", "link"]:
# 使用decompose()删除非法标签
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("添加成功")

最新文章

  1. ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
  2. 使用 gpg 加密文件 - 通过 shell 或 php
  3. SQL TOP 子句、SQL LIKE 操作符、SQL 通配符
  4. linux 项目环境搭建配置
  5. coursera机器学习-支持向量机SVM
  6. zoj 3644(dp + 记忆化搜索)
  7. nginx 反向代理 与 Apache backend的配置联合配置
  8. eclipse调试总结(转)
  9. css display visibility
  10. PE制作实录 —— 补充说明
  11. raw socket遇上windows
  12. device tree website
  13. django下载文件
  14. WebService第二天
  15. js--事件对象的理解1
  16. Oracle优化:千万级大表逻辑判断的累赘
  17. 我的Android进阶之旅------&amp;gt; Android在TextView中显示图片方法
  18. MYSQL Nested Join Optimization
  19. Windows-NTFS-ADS在渗透测试中的利用
  20. [UE4]时序问题

热门文章

  1. mac环境下intellij的自定义配置文件位置
  2. Android学习笔记(11):线性布局LinearLayout
  3. 手机 https 抓包---Charles篇
  4. ARP协议具体解释之Gratuitous ARP(免费ARP)
  5. stingray中使用angularjs
  6. Windows批处理 调用程序后 不等待子进程 父进程继续执行命令
  7. 基于Centos7.5搭建Docker环境
  8. Database数据库切片模式
  9. Easyui datagrid 特殊处理,记录笔记
  10. ORA-214 signalled during: ALTER DATABASE MOUNT 问题