草庐IT

html - 为什么要使用白名单进行 HTML 清理?

我经常想知道——为什么在清理HTML输入时使用白名单而不是黑名单?有多少偷偷摸摸的HTML技巧可以打开XSS漏洞?显然脚本标签和框架是不允许的,并且白名单将在HTML元素的字段上使用,但为什么大部分都不允许? 最佳答案 如果您将某些内容从白名单中删除,那么您只是破坏了一些不够重要的内容,让您首先考虑。如果您将某些内容从黑名单中删除,那么您就打开了一个很大的安全漏洞。如果浏览器添加了新功能,那么您的黑名单就会过时。 关于html-为什么要使用白名单进行HTML清理?,我们在StackOve

javascript - 如何在 HTML 脚本标签中插入任意 JSON

我想将JSON的内容存储在HTML文档的源代码中,在脚本标记内。该JSON的内容确实取决于用户提交的输入,因此需要非常小心地为XSS清理该字符串。我在这里阅读了两个关于SO的概念。1.替换所有出现的标记为,或替换所有进入服务器端。代码看起来像下面这样(以Python和jinja2为例)://viewdata={'test':'asdasas\'daas"da',}context_dict={'data_json':json.dumps(data,ensure_ascii=False).replace('vardata_json={{data_json|safe}};//jsaccess

javascript - 如何在 HTML 脚本标签中插入任意 JSON

我想将JSON的内容存储在HTML文档的源代码中,在脚本标记内。该JSON的内容确实取决于用户提交的输入,因此需要非常小心地为XSS清理该字符串。我在这里阅读了两个关于SO的概念。1.替换所有出现的标记为,或替换所有进入服务器端。代码看起来像下面这样(以Python和jinja2为例)://viewdata={'test':'asdasas\'daas"da',}context_dict={'data_json':json.dumps(data,ensure_ascii=False).replace('vardata_json={{data_json|safe}};//jsaccess

html - 将 localhost 添加到内容安全策略是否不安全?

我在index.html中设置了以下meta标记,它简化了本地开发,但也将部署在生产代码中:是否有任何已知的方法可以像这样添加localhost以允许任何类型的跨站点脚本攻击?根据Google'sCSPevaluator看起来没问题(好吧,至少是localhost部分)。 最佳答案 这不是最佳选择,但不会显着降低用户的安全性。这是因为浏览器和计算机构成了任何网页的可信计算基础。如果您从不受信任的机器上浏览,世界上没有任何安全规则可以实现网页来保证您的数据安全和交换隐私。 关于html-将

html - 将 localhost 添加到内容安全策略是否不安全?

我在index.html中设置了以下meta标记,它简化了本地开发,但也将部署在生产代码中:是否有任何已知的方法可以像这样添加localhost以允许任何类型的跨站点脚本攻击?根据Google'sCSPevaluator看起来没问题(好吧,至少是localhost部分)。 最佳答案 这不是最佳选择,但不会显着降低用户的安全性。这是因为浏览器和计算机构成了任何网页的可信计算基础。如果您从不受信任的机器上浏览,世界上没有任何安全规则可以实现网页来保证您的数据安全和交换隐私。 关于html-将

javascript - html() vs innerHTML jquery/javascript & XSS 攻击

我正在测试对我自己的代码的xss攻击。下面的示例是一个简单的框,用户可以在其中键入他想要的任何内容。按“测试!”后按钮,JS会将输入的字符串显示为两个div。这是我为了更好地解释我的问题而制作的示例:functiontestIt(){varinput=document.getElementById('input-test').value;vartestHtml=document.getElementById('test-html');vartestInnerHTML=document.getElementById('test-innerHTML');$(testHtml).html(i

javascript - html() vs innerHTML jquery/javascript & XSS 攻击

我正在测试对我自己的代码的xss攻击。下面的示例是一个简单的框,用户可以在其中键入他想要的任何内容。按“测试!”后按钮,JS会将输入的字符串显示为两个div。这是我为了更好地解释我的问题而制作的示例:functiontestIt(){varinput=document.getElementById('input-test').value;vartestHtml=document.getElementById('test-html');vartestInnerHTML=document.getElementById('test-innerHTML');$(testHtml).html(i

html - 处理用户生成的供公众查看的 html 内容的最佳方式是什么?

在我的网络应用程序中,我允许发布用户生成的内容以供公众使用,类似于Stackoverflow。处理此问题的最佳做法是什么?我目前处理用户生成内容的步骤是:我使用MarkItUp让用户一种格式化html的简单方法。在用户提交之后我通过HTMLSanitizer运行它(滚动到bottem)使用白名单方法。如果sanitizer过程有删除了任何用户创建的内容我不保存内容。然后我返回修改后的内容警告消息,“一些非法的检测到的内容标签和删除仔细检查你的工作和再试一次。”如果内容通过sanitizer过程干净,我省原始html内容到数据库。当呈现给客户端时,我只是将原始html从数据库传递到页面。

html - 处理用户生成的供公众查看的 html 内容的最佳方式是什么?

在我的网络应用程序中,我允许发布用户生成的内容以供公众使用,类似于Stackoverflow。处理此问题的最佳做法是什么?我目前处理用户生成内容的步骤是:我使用MarkItUp让用户一种格式化html的简单方法。在用户提交之后我通过HTMLSanitizer运行它(滚动到bottem)使用白名单方法。如果sanitizer过程有删除了任何用户创建的内容我不保存内容。然后我返回修改后的内容警告消息,“一些非法的检测到的内容标签和删除仔细检查你的工作和再试一次。”如果内容通过sanitizer过程干净,我省原始html内容到数据库。当呈现给客户端时,我只是将原始html从数据库传递到页面。

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

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