我很确定这是一个常见的要求,我对js有点新,我不知道该搜索什么。如果这是重复的话,请指出正确的方向。
因此,我们在网站上有可自定义的区域,您可以在其中添加标签和css来修改该区域的外观。我们担心人们可能会在那里放入恶意的js代码。
所以我们想到了一种在这些区域禁用java脚本的方法。
有最好的做法吗?或者任何正确的方法来做到这一点?
答案 0 :(得分:2)
是的,这是一个常见的要求。您需要清理从用户处收到的HTML和CSS,以确保它不包含任何JavaScript或任何会偷偷加载JavaScript的内容。这是非常重要的,因此有一些工具:HTML清洁剂(和CSS清洁剂)。这些是正确的,完整的HTML和CSS解析器,您可以让白名单允许某些标记和属性,并禁止其他标记和属性(以及限制属性值)。
清理程序需要在服务器端运行,并确保在向任何其他用户显示之前对用户提供的内容进行清理。 1 因此,您需要找到合适的工具适用于您的服务器端环境,例如.Net的HTML Agility Pack,适用于Java的OWASP Anti-Samy等。
1 天生的本能是在收货时对其进行消毒,但只是在收货时进行消毒并不够好,因为如果您发现规则存在缺陷,您必须重新清理已存储的所有内容,或在收据和交付时进行清理。