草庐IT

html - 当我需要从 WYSIWYG 编辑器呈现 HTML 时如何防止 XSS 攻击?

非技术背景信息:我在一所学校工作,我们正在使用Django构建一个新网站。为学校工作的教师在技术上不够称职,无法使用另一种MarkUp语言,例如MarkDown。我们最终决定我们应该使用所见即所得的编辑器,这会带来安全漏洞。我们不太担心老师本身,但更多的恶意学生可能会获得老师的证书。技术背景信息:我们正在使用Django1.3运行并且尚未选择特定的编辑器。我们倾向于像TINYMCE这样的javascript,但可以说服使用任何允许安全性和易用性的东西。因为WYSIWYG编辑器会将HTML输出到文档中,所以我们不能简单地转义它。防止恶意代码的最佳方法是什么,同时又能让非技术教师轻松撰写帖

javascript - "JavaScript sanitization doesn' t save you from innerHTML”是什么意思?

我正在通过这个ppt学习xss预防:http://stash.github.io/empirejs-2014/#/2/23,我对此页面有疑问。上面写着“JavaScriptsanitizationdoesn'tsaveyoufrominnerHTML”,我尝试了这样一个简单的测试:testvaruserName="Jeremy\x3Cscript\x3Ealert('boom')\x3C/script\x3E";document.getElementById('test').innerHTML=""+userName+"";当我在我的浏览器(chrome)上打开这个html时,我只看到

javascript - "JavaScript sanitization doesn' t save you from innerHTML”是什么意思?

我正在通过这个ppt学习xss预防:http://stash.github.io/empirejs-2014/#/2/23,我对此页面有疑问。上面写着“JavaScriptsanitizationdoesn'tsaveyoufrominnerHTML”,我尝试了这样一个简单的测试:testvaruserName="Jeremy\x3Cscript\x3Ealert('boom')\x3C/script\x3E";document.getElementById('test').innerHTML=""+userName+"";当我在我的浏览器(chrome)上打开这个html时,我只看到

python - 如何让 Beautiful Soup 输出 HTML 实体?

我正在尝试对来自客户端的一些HTML输入进行清理和XSS防护。我正在使用Python2.6和BeautifulSoup。我解析输入,去除所有不在白名单中的标签和属性,然后将树转换回字符串。然而...>>>unicode(BeautifulSoup('text在我看来,这不像是有效的HTML。使用我的标签剥离器,它为各种肮脏的事情开辟了道路:>>>printBeautifulSoup('script>alert("xss")script>').prettify()script>alert("xss")script>对将被删除,剩下的不仅是XSS攻击,甚至还有有效的HTML。显而易见的解决

python - 如何让 Beautiful Soup 输出 HTML 实体?

我正在尝试对来自客户端的一些HTML输入进行清理和XSS防护。我正在使用Python2.6和BeautifulSoup。我解析输入,去除所有不在白名单中的标签和属性,然后将树转换回字符串。然而...>>>unicode(BeautifulSoup('text在我看来,这不像是有效的HTML。使用我的标签剥离器,它为各种肮脏的事情开辟了道路:>>>printBeautifulSoup('script>alert("xss")script>').prettify()script>alert("xss")script>对将被删除,剩下的不仅是XSS攻击,甚至还有有效的HTML。显而易见的解决

javascript - createTextNode 对 HTML 注入(inject)和 XSS 完全安全吗?

我正在开发单页网络应用程序。我通过直接创建DOM节点来进行渲染。特别是,通过使用document.createTextNode("userdata")创建文本节点,将所有用户提供的数据添加到页面中。这种方法是否避免了任何可能的HTML注入(inject)、跨站点脚本(XSS)以及用户可能做的所有其他邪恶事情? 最佳答案 它创建了一个纯文本节点,所以是的,就目前而言。虽然使用不安全的方法从输入到createTextNode的任何channel获取数据,但可能会造成XSS问题。例如以下将是不安全:document.createTextN

javascript - createTextNode 对 HTML 注入(inject)和 XSS 完全安全吗?

我正在开发单页网络应用程序。我通过直接创建DOM节点来进行渲染。特别是,通过使用document.createTextNode("userdata")创建文本节点,将所有用户提供的数据添加到页面中。这种方法是否避免了任何可能的HTML注入(inject)、跨站点脚本(XSS)以及用户可能做的所有其他邪恶事情? 最佳答案 它创建了一个纯文本节点,所以是的,就目前而言。虽然使用不安全的方法从输入到createTextNode的任何channel获取数据,但可能会造成XSS问题。例如以下将是不安全:document.createTextN

javascript - session 存储可以安全吗?

我想用sessionstorage只查询一次数据库中的用户数据,然后简单的用JS检索,所以考虑用sessionstorage。接下来我的问题是,这样安全吗?请注意:1.JS不能插入到有表单的页面(表单只接受字母数字值)所以只能来自URL1.1像www.website.com/?q=blablabla这样的查询字符串不在php中使用(php不从url检索任何数据)1.2使用javascript:script在url中调用js...不是一个大问题,因为用户只能访问他自己的数据,更不用说他已经可以访问它了-这就是用户数据点1.3是否有第三种方式可以通过包含JS的链接将用户重定向到该站点,然后

javascript - session 存储可以安全吗?

我想用sessionstorage只查询一次数据库中的用户数据,然后简单的用JS检索,所以考虑用sessionstorage。接下来我的问题是,这样安全吗?请注意:1.JS不能插入到有表单的页面(表单只接受字母数字值)所以只能来自URL1.1像www.website.com/?q=blablabla这样的查询字符串不在php中使用(php不从url检索任何数据)1.2使用javascript:script在url中调用js...不是一个大问题,因为用户只能访问他自己的数据,更不用说他已经可以访问它了-这就是用户数据点1.3是否有第三种方式可以通过包含JS的链接将用户重定向到该站点,然后

HTML 在存储或显示时对用户输入进行编码

一直困扰着我的简单问题。我应该立即对用户输入进行HTML编码并将编码后的内容存储在数据库中,还是应该在显示时存储原始值和HTML编码?存储编码数据大大降低了开发人员在显示数据时忘记编码数据的风险。然而,存储编码数据会使数据挖掘变得更加麻烦,并且会占用更多空间,尽管这通常不是问题。 最佳答案 我强烈建议在输出时对信息进行编码。如果您希望更改在某个点查看原始数据的方式,那么将原始数据存储在数据库中是很有用的。流程应该类似于:sanitizeuserinput->protectagainstsqlinjection->db->encode