如何检查字符串是否包含JavaScript代码?

guogangj

我正在做一个类似Web应用程序的论坛。允许用户向服务器提交丰富的html文本,例如p标签,div标签等。为了保持格式,服务器会将这些标签直接写回到用户的浏览器中(不进行html编码)。因此,我必须做一个潜在的危险脚本检查以避免XSS。任何JavaScript代码都应该是危险的,并且不被允许。那么,如何检测它们或任何其他更好的解决方案?

危险示例1:

<script>alert('1')</script>

危险示例2:

<script src="..."></script>

危险示例3:

<a href="javascript:dangerousFunction();">click me</a>
阿克沙特·马哈詹(Akshat mahajan)

使用HTML解析器

您的要求很简单:

  • 您必须禁止所有<script>标签,但要保留某些丰富的HTML标签。
  • 您必须能够转义链接中的内联Javascript。即将其字符串化或完全删除不安全的属性。

处理所有这些问题的正确方法是采用符合现代标准的HTML解析器,该语法分析器可以语法分析发送过来的丰富HTML的结构,识别发送过来的标签并发现属性中的原始值。实际上,正如评论之一所提到的,这是如何进行卫生处理的

有许多预先存在的HTML解析器,其目的是针对XSS不安全的输入。例如,npmjs-xss似乎能够完全满足您的要求:

您甚至可以将此服务器端作为命令行实用程序运行

大多数语言已经存在类似的库,因此您应该彻底搜索首选语言的程序包存储库。或者,您可以启动子流程并直接js-xss从命令行收集结果

避免使用正则表达式幼稚地解析HTML-尽管确实的确,大多数HTML解析器最终都在内部使用了正则表达式,但对于正确定义语法后,对于严格定义好的语法,它们以相当有限的方式使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查字符串是否包含特定字符

来自分类Dev

如何检查字符串是否包含特殊字符(!@#$%^&*()_ +)

来自分类Dev

如何检查字符串是否包含某些字符

来自分类Dev

如何检查字符串是否包含特定字符?

来自分类Dev

如何检查字符串是否包含特殊字符?

来自分类Dev

JavaScript检查字符串中是否包含字母

来自分类Dev

如何检查字符串是否包含方括号“)(”?

来自分类Dev

如何检查字符串是否包含搜索项

来自分类Dev

如何检查字符串是否包含整数?-迅速

来自分类Dev

如何检查字符串是否包含字母

来自分类Dev

如何检查字符串是否包含撇号

来自分类Dev

如何检查字符串是否包含单词?

来自分类Dev

如何检查字符串是否包含匹配的括号 ()

来自分类Dev

如何检查字符串在Javascript中是否仅包含特定的特殊字符集?

来自分类Dev

如何检查字符串是否包含字符串数组中的字符串?

来自分类Dev

JavaScript:如何检查字符串是否包含数组中的值?

来自分类Dev

SSRS-通过代码检查字符串中是否包含子字符串

来自分类Dev

如何检查字符串是否包含子字符串并在javascript中为其着色?

来自分类Dev

如何检查字符串是否是回文JavaScript

来自分类Dev

如何检查字符串是否在JavaScript数组中?

来自分类Dev

如何检查字符串是否包含列表/数组中的任何字符串

来自分类Dev

如何检查字符串是否在Pascal中包含字符串

来自分类Dev

如何在Delphi中检查字符串是否包含子字符串?

来自分类Dev

如何检查字符串是否包含子字符串?

来自分类Dev

如何使用Linq检查字符串是否包含字符串的子集之一

来自分类Dev

如何检查字符串是否包含列表中的字符串?

来自分类Dev

如何使用jQuery检查字符串是否包含给定字符串

来自分类Dev

如何在ASP.NET MVC模型验证中检查字符串是否包含HTML代码?

来自分类Dev

PHP检查字符串是否包含数字并检查字符串长度

Related 相关文章

  1. 1

    如何检查字符串是否包含特定字符

  2. 2

    如何检查字符串是否包含特殊字符(!@#$%^&*()_ +)

  3. 3

    如何检查字符串是否包含某些字符

  4. 4

    如何检查字符串是否包含特定字符?

  5. 5

    如何检查字符串是否包含特殊字符?

  6. 6

    JavaScript检查字符串中是否包含字母

  7. 7

    如何检查字符串是否包含方括号“)(”?

  8. 8

    如何检查字符串是否包含搜索项

  9. 9

    如何检查字符串是否包含整数?-迅速

  10. 10

    如何检查字符串是否包含字母

  11. 11

    如何检查字符串是否包含撇号

  12. 12

    如何检查字符串是否包含单词?

  13. 13

    如何检查字符串是否包含匹配的括号 ()

  14. 14

    如何检查字符串在Javascript中是否仅包含特定的特殊字符集?

  15. 15

    如何检查字符串是否包含字符串数组中的字符串?

  16. 16

    JavaScript:如何检查字符串是否包含数组中的值?

  17. 17

    SSRS-通过代码检查字符串中是否包含子字符串

  18. 18

    如何检查字符串是否包含子字符串并在javascript中为其着色?

  19. 19

    如何检查字符串是否是回文JavaScript

  20. 20

    如何检查字符串是否在JavaScript数组中?

  21. 21

    如何检查字符串是否包含列表/数组中的任何字符串

  22. 22

    如何检查字符串是否在Pascal中包含字符串

  23. 23

    如何在Delphi中检查字符串是否包含子字符串?

  24. 24

    如何检查字符串是否包含子字符串?

  25. 25

    如何使用Linq检查字符串是否包含字符串的子集之一

  26. 26

    如何检查字符串是否包含列表中的字符串?

  27. 27

    如何使用jQuery检查字符串是否包含给定字符串

  28. 28

    如何在ASP.NET MVC模型验证中检查字符串是否包含HTML代码?

  29. 29

    PHP检查字符串是否包含数字并检查字符串长度

热门标签

归档