草庐IT

PHP:HTML 属性编码/JavaScript 解码

为HTML属性上下文编码不受信任的数据的正确方法是什么?例如:"/>我通常使用htmlentities()或htmlspecialchars()来执行此操作:"/>但是,我最近遇到了一个问题,当我需要传递的数据是一个需要传递给JavaScript以更改页面位置的URL时,这会破坏我的应用程序://...window.location=document.getElementById('foo').value;//...在这种情况下,foo是一个C程序,它不理解URL中的编码字符和段错误。我可以简单地获取JavaScript中的值并执行类似value.replace('&','&')的操作

javascript - 是什么让输入容易受到 XSS 攻击?

我一直在阅读有关XSS的文章,我制作了一个带有文本的简单表单并提交了输入,但是当我执行alert();时在它上面,什么也没有发生,服务器得到那个字符串,仅此而已。我该怎么做才能让它变得脆弱??(然后我会学习我不应该做的事嘿嘿)干杯。 最佳答案 实际上只是让服务器输出它,以便输入字符串有效地嵌入到返回给客户端的HTML源中。PHP示例:XSStestResult:JSP示例:XSStestResult:${param.xss}或者,您可以重新显示输入元素中的值,这也很常见:">回复用这种方式“怪异”地攻击像"/>alert('xss'

javascript - 是什么让输入容易受到 XSS 攻击?

我一直在阅读有关XSS的文章,我制作了一个带有文本的简单表单并提交了输入,但是当我执行alert();时在它上面,什么也没有发生,服务器得到那个字符串,仅此而已。我该怎么做才能让它变得脆弱??(然后我会学习我不应该做的事嘿嘿)干杯。 最佳答案 实际上只是让服务器输出它,以便输入字符串有效地嵌入到返回给客户端的HTML源中。PHP示例:XSStestResult:JSP示例:XSStestResult:${param.xss}或者,您可以重新显示输入元素中的值,这也很常见:">回复用这种方式“怪异”地攻击像"/>alert('xss'

c# - 如何在允许 HTML 输入的同时防止 XSS(跨站点脚本)

我有一个允许通过TinyMCE输入HTML的网站丰富的编辑器控件。它的目的是允许用户使用HTML格式化文本。这个用户输入的内容然后被输出给系统的其他用户。然而,这意味着有人可以将JavaScript插入到HTML中,以便对系统的其他用户执行XSS攻击。从HTML字符串中过滤掉JavaScript代码的最佳方法是什么?如果我对执行正则表达式检查标记这是一个好的开始,但作恶者仍然可以将JavaScript附加到onclick标签的属性。是否有一种万无一失的方法来编写所有JavaScript代码,同时保持其余HTML不变?对于我的特定实现,我使用的是C# 最佳答案

c# - 如何在允许 HTML 输入的同时防止 XSS(跨站点脚本)

我有一个允许通过TinyMCE输入HTML的网站丰富的编辑器控件。它的目的是允许用户使用HTML格式化文本。这个用户输入的内容然后被输出给系统的其他用户。然而,这意味着有人可以将JavaScript插入到HTML中,以便对系统的其他用户执行XSS攻击。从HTML字符串中过滤掉JavaScript代码的最佳方法是什么?如果我对执行正则表达式检查标记这是一个好的开始,但作恶者仍然可以将JavaScript附加到onclick标签的属性。是否有一种万无一失的方法来编写所有JavaScript代码,同时保持其余HTML不变?对于我的特定实现,我使用的是C# 最佳答案

xss - HTML 和属性编码

我遇到了一个postonMetaSO我很好奇未编码和编码的HTML字符之间的细微差别是什么,在HTML属性中,在以下上下文中:安全性、最佳实践和浏览器支持。 最佳答案 HTML编码将HTML标记中具有语义意义的某些字符替换为可以向用户显示而不影响解析标记的等效字符。最重要和最明显的字符是、&和",它们被替换为、>、&和"。此外,编码器可以用等效的HTML实体编码替换高位字符,因此即使页面发送到浏览器作为ASCII。另一方面,HTML属性编码只替换那些对防止字符串破坏HTML元素属性很重要的字符的子集。具体来说,您通常只需将"、&和"

xss - HTML 和属性编码

我遇到了一个postonMetaSO我很好奇未编码和编码的HTML字符之间的细微差别是什么,在HTML属性中,在以下上下文中:安全性、最佳实践和浏览器支持。 最佳答案 HTML编码将HTML标记中具有语义意义的某些字符替换为可以向用户显示而不影响解析标记的等效字符。最重要和最明显的字符是、&和",它们被替换为、>、&和"。此外,编码器可以用等效的HTML实体编码替换高位字符,因此即使页面发送到浏览器作为ASCII。另一方面,HTML属性编码只替换那些对防止字符串破坏HTML元素属性很重要的字符的子集。具体来说,您通常只需将"、&和"

php - 防止 XSS 和 SQL 注入(inject)就像这样做一样简单

问题:在任何已保存的输入字段上使用strip_tags并运行htmlspecialchars来防止XSS(跨站点脚本)是否简单在任何显示的输出上...​​并通过使用PHPPDO准备语句防止SQL注入(inject)?这是一个例子://INPUT:Inputapersonsfavoritecolorandsavetodatabase//thisshouldpreventSQLinjection(byusingpreparedstatement)//andhelppreventXSS(byusingstrip_tags)$sql='INSERTINTOTABLEfavorite(perso

php - 防止 XSS 和 SQL 注入(inject)就像这样做一样简单

问题:在任何已保存的输入字段上使用strip_tags并运行htmlspecialchars来防止XSS(跨站点脚本)是否简单在任何显示的输出上...​​并通过使用PHPPDO准备语句防止SQL注入(inject)?这是一个例子://INPUT:Inputapersonsfavoritecolorandsavetodatabase//thisshouldpreventSQLinjection(byusingpreparedstatement)//andhelppreventXSS(byusingstrip_tags)$sql='INSERTINTOTABLEfavorite(perso

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

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