我工作的一个单页web应用。 我被直接创建DOM节点做渲染。 特别是,所有用户提供的数据是通过与创建文本节点添加到页面document.createTextNode("user data")
请问这种方法避免HTML注入,跨站点脚本(XSS)的任何可能性,和所有其他邪恶的东西用户能做什么呢?
我工作的一个单页web应用。 我被直接创建DOM节点做渲染。 特别是,所有用户提供的数据是通过与创建文本节点添加到页面document.createTextNode("user data")
请问这种方法避免HTML注入,跨站点脚本(XSS)的任何可能性,和所有其他邪恶的东西用户能做什么呢?
它创建了一个纯文本节点,所以是的,只要它去。
这可以通过使用不安全的方法来获得无论从任何渠道也被输入到的数据来创建一个XSS问题createTextNode
虽然。
例如,下面的是不安全的 :
document.createTextNode('<?php echo $_GET['xss']; ?>');
......但危险是从PHP echo
,而不是JavaScript的createTextNode
。