有没有用于清理HTML和移除所有Javascript的开源Python库?
我想写一个网页应用,让用户可以输入任何可以放在<div>
标签里的HTML代码。这些HTML代码会展示给其他用户,所以我想确保这个网站不会让用户受到XSS攻击。
有没有什么好的Python库,可以把HTML或者DOM树中的事件处理属性、<script>
标签和其他的JavaScript杂七杂八的东西清理掉?
我打算用Beautiful Soup来整理HTML,确保里面没有未闭合的标签之类的问题。但是,按照我所了解的,它似乎没有现成的方法来去掉所有的JavaScript。
如果其他语言有好的库也可以,但我还是更喜欢用Python。
我在谷歌上搜索了很多,也在pypi上找过,但没找到什么明显的解决方案。
相关链接
5 个回答
0
你可以使用BeautifulSoup这个工具。它可以让你很方便地浏览网页的结构,即使网页的格式不是很好也没关系。我不太确定有没有专门只处理脚本标签的工具。
5
正如Klaus提到的,大家在这个社区里达成了一个共识,就是在处理这些任务时,应该使用BeautifulSoup这个工具:
soup = BeautifulSoup.BeautifulSoup(html)
for script_elt in soup.findAll('script'):
script_elt.extract()
html = str(soup)
4
使用白名单的方法来允许特定的标签、属性和它们的值,是唯一可靠的方式。你可以看看这个链接:Recipe 496942: Cross-site scripting (XSS) defense
那么,现有的标记语言,比如这个网站上使用的,有什么问题呢?