首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止安全漏洞

防止安全漏洞
EN

Stack Overflow用户
提问于 2012-07-08 05:08:29
回答 5查看 2.5K关注 0票数 0

我正在创建一个网站,在那里你“发布”,表单内容被保存在一个MySql数据库中,并在加载页面后,被检索,类似于脸书。我构造了所有的帖子,并将原始html插入到一个模板中。问题是,在我测试时,我注意到我可以将javascript或其他HTML写入表单并提交,在重新加载时,html或JS将被视为源代码,而不是帖子。我认为一些简单的编码就可以解决这个问题,但是使用<form accept-charset="utf-8">是行不通的。有没有有效的方法来防止这种类型的安全漏洞?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-08 05:15:35

我找到了这篇文章,它谈到了python中的XSS预防。

Python library for XSS filtering?

票数 1
EN

Stack Overflow用户

发布于 2012-07-08 07:00:08

为了完整起见,我想提一下,在金字塔中有两个地方可以清理用户输入--在进入的过程中,在将数据保存到数据库之前,以及在离开的过程中,在模板中呈现数据之前。可以说,将HTML/JavaScript存储在数据库中没有什么问题,只要您确保模板中呈现的所有内容都被正确转义,它就不会影响您。

事实上,Chameleon和Mako模板引擎在默认情况下都开启了HTML转义,所以如果你只是“照常”使用它们,你永远不会得到用户输入的HTML注入到你的页面中-相反,它将被呈现为文本。如果没有这个功能,清理用户输入将是一项艰巨的任务,因为您需要检查用户输入数据的每个表单中的每个字段(即,不仅是“方便的”文本区域小部件,还包括其他所有内容-用户名、用户电子邮件等)。

因此,您一定是做了一些不寻常的事情(或者使用其他模板库)来使Pyramid以这种方式运行。如果您提供更多关于您正在使用的模板库的详细信息和代码示例,我们将能够找到以适当的方式修复它的方法。

票数 8
EN

Stack Overflow用户

发布于 2012-07-08 05:16:41

您所描述的攻击类型称为"Javascript注入攻击“或”跨站点脚本(XSS)攻击“。你可能会有更多的机会去寻找它。虽然最好的问题是probably here,但Sanitising user input using Python也是一个类似的问题,它包含了一些相当全面的答案

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11378645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档