相关疑难解决方法(0)

在提交的表单数据中清理HTML

是否有一个通用的"表单清理程序",我可以用来确保从提交的表单中删除所有的html /脚本?form.clean()似乎没有做任何事情 - html标签仍然在cleaning_data中.或者实际上手动执行此操作(并覆盖表单的clean()方法)是我唯一的选择?

python forms django sanitization

29
推荐指数
3
解决办法
2万
查看次数

在Django中验证上传的文件

我工作的Django应用程序有一个Event模型.一个Event可能有关联的照片,静态HTML文件和PDF文件.

我想允许受信任的用户上传这些文件,但我对安全性很警惕,特别是在Django文档(链接)中阅读了以下内容.

请注意,无论何时处理上传的文件,都应密切关注上传文件的位置以及文件的类型,以避免安全漏洞.验证所有上传的文件,以确保文件符合您的认可.例如,如果您盲目地让某人将文件上传到Web服务器文档根目录中的目录而无需验证,那么有人可以上传CGI或PHP脚本并通过访问您站点上的URL来执行该脚本.不要允许.

如何验证不同类型的文件?我很想听听任何人处理这种事情的经历,或者是进一步阅读的链接.我有一种直觉,认为html文件风险太大,在这种情况下我会限制管理员的上传权限.

python security django file-upload

22
推荐指数
4
解决办法
7508
查看次数

Jinja2逃脱所有HTML但img,b等

Jinja2的自动转义所有的HTML标签,但我想摆脱不了一些标签(比如img,b和其他一些).我该怎么做?

python escaping jinja2 flask

14
推荐指数
3
解决办法
6297
查看次数

当我需要从WYSIWYG编辑器渲染HTML时如何防止XSS攻击?

非技术背景信息:我在一所学校工作,我们正在使用Django建立一个新网站.为学校工作的教师在技术上没有足够的能力使用另一种MarkUp语言,如MarkDown.我们最终决定使用WYSIWYG编辑器,这会带来安全漏洞.我们并不太担心教师本身,而是更多可能获得教师资格的恶意学生.

技术背景信息:我们正在使用Django 1.3运行,尚未选择特定的编辑器.我们倾向于使用像TINYMCE这样的javascript,但可以说服它使用任何允许安全性和易用性的东西.因为WYSIWYG编辑器将​​输出要呈现到文档中的HTML,所以我们不能简单地将其转义.

什么是防止恶意代码的最佳方法,同时仍然让非技术教师轻松撰写帖子?

html security django wysiwyg

10
推荐指数
2
解决办法
3282
查看次数

div contenteditable,XSS

我目前有一个简单的<div contenteditable="true">工作,但是,这是我的问题.

目前,用户可以通过<script>在div中插入一个持久的XSS ,我绝对不想要.

但是,我目前解决这个问题的想法是:

  • 仅允许使用a和img标记
  • 使用textarea(不是一个好主意,因为那时用户可以复制和粘贴图像)

你们有什么建议?

html javascript xss jquery

8
推荐指数
1
解决办法
3259
查看次数

Django:允许用户在表单字段中提交有效的HTML

使用Django,用户是否可以在表单字段中提交HTML,保存,然后在模板中呈现HTML?

一个示例是用户在文本字段中添加链接,然后应该在文本的其余部分中将其呈现为标记.

用户输入如下内容:

this is a site called <a href="http://stackoverflow.com">SO</a>.
Run Code Online (Sandbox Code Playgroud)

SO链接将是一个链接,而不是将其呈现为文本.

django django-forms

7
推荐指数
1
解决办法
9792
查看次数

Python的轻量级标记语言

编写Python Web应用程序,我想创建一个文本区域,用户可以用轻量级标记语言输入文本.该文本将导入到html模板并在页面上查看.今天我用这个命令来创建textarea,它允许用户输入任何(html)文本:

my_text = cgidata.getvalue('my_text', 'default_text')
ftable.AddRow([Label(_('Enter your text')),
               TextArea('my_text', my_text, rows=8, cols=60).Format()])
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变它,以便只允许一些(安全的,最终轻量级的)标记?包括消毒剂在内的所有建议都是受欢迎的,只要它可以轻松地与Python集成.

html python markup

4
推荐指数
1
解决办法
1157
查看次数

使用html5lib或bleach删除<style> ... </ style>标记的内容

我一直在使用优秀的漂白库来删除错误的HTML.

我有一堆HTML文档已经从Microsoft Word粘贴,包含以下内容:

<STYLE> st1:*{behavior:url(#ieooui) } </STYLE>
Run Code Online (Sandbox Code Playgroud)

使用漂白(style隐藏不允许标记),让我:

st1:*{behavior:url(#ieooui) }
Run Code Online (Sandbox Code Playgroud)

哪个没用.Bleach似乎只有以下选项:

  • 逃生标签;
  • 删除标签(但不删除其内容).

我正在寻找第三种选择 - 删除标签及其内容.

有没有办法使用漂白或html5lib来完全删除style标签及其内容?html5lib文档并没有太大帮助.

python django html5lib

3
推荐指数
1
解决办法
1103
查看次数

Django templatetag用于呈现html的子集

我有一些html(在这种情况下通过TinyMCE创建)我想添加到页面.但是,出于安全原因,我不想只打印用户输入的所有内容.

有没有人知道一个模板标签(最好是一个过滤器),它只允许渲染一个安全的html子集?

我意识到降价和其他人这样做.但是,它们还添加了额外的标记语法,这可能会让我的用户感到困惑,因为他们使用的是不知道降价的富文本编辑器.

html django markdown django-templates templatetags

2
推荐指数
1
解决办法
903
查看次数

在用户提交的html中禁用Javascript

如果我要创建一个用户可以将任意html放入其"个人资料"或类似内容的网站,我该如何阻止该html中嵌入的JavaScript运行?

我可以在for(;;);某处放置无限循环吗?如果是这样,我会把它放在哪里?

此方法还有哪些其他安全问题?

javascript security filter

1
推荐指数
2
解决办法
158
查看次数

feedparser 无法获得 youtube 播放器

我正在测试feedparser我的 RSS 提要。它就像一个魅力,我得到了所有的条目。

有些新闻有一个内嵌的 youtube 播放器,但这只是没有出现在 feedparser 的返回值中。

我的代码很简单:

d = feedparser.parse('http://feeds.feedburner.com/NotciasPs3evita-Mypst')
Run Code Online (Sandbox Code Playgroud)

这将返回(摘录):

 guidislink': False,
          'id': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
          'link': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
          'links': [{'href': u'http://mypst.com.br/forum/index.php?/topic/17336-gamegen-call-of-duty-black-ops-2-ganha-trailer-com-acao-real-e-muitas-surpresas/',
                     'rel': u'alternate',
                     'type': u'text/html'}],
          'published': u'Mon, 29 Oct 2012 14:53:58 +0000',
          'published_parsed': time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=53, tm_sec=58, tm_wday=0, tm_yday=303, tm_isdst=0),
          'summary': u'A Activision revelou hoje um novo trailer de Call of Duty: Black Ops 2, substituindo as cenas de a\xe7\xe3o do jogo por cenas de a\xe7\xe3o na vida real. O trailer traz diversas \u201csurpresas\u201d e …
Run Code Online (Sandbox Code Playgroud)

python feedparser

1
推荐指数
1
解决办法
412
查看次数

如何清理输入以避免django中的恶意属性?

我想允许用户发布图片,因此需要添加|safe到模板标签并使用beautifulsoap使用代码段将某些标签列入白名单.

但是,我想知道如何避免像下面这样的潜在恶意属性?

<img src="puppy.png" onload="(function(){/* do bad stuff */}());" /> 
Run Code Online (Sandbox Code Playgroud)

更新: 请注意,上面链接的代码段有一些XSS漏洞,这里提到

django beautifulsoup django-templates

1
推荐指数
1
解决办法
185
查看次数