XSS 是常见的网络攻击类型之一
什么是XSS
我的理解:
在很多网页中,用户输入的字符将被插入到 HTML中(例如用户评论),或者被嵌入SQL语句中(例如用户登录)当攻击者输入的是一些有特殊意义的字符时,比如 他将可以在网页中执行 javascript 脚本。
试想如果平台没有做好XSS 的防护,那么攻击者可以在评论内容中执行 JavaScript, 那么他很容易就能把这篇文章中的链接指向钓鱼网站,或替换这篇文章的内容。
如何阻止XSS
本质上就是要把用户输入的一些危险字符替换掉
比如把 < 替换成 <
XSS shield 库的简介
如果你用过 Flask 的话,你一定听说过 Markupsafe, 它也是Pallets的项目。你不妨去GitHub 上看看它的源码(它真的是很小的项目了)。
但是Markupsafe 的escape() 函数选项并不多。
于是我写了与Markupsafe类似的XSS shield 库
你可以在PyPI 上找到它
xss-shieldpypi.org/project/xss-shield/
安装方法
非常简单
$ pip install xss-shield
使用方法
import xss_shield
unsafe_str = '<script>alert("Bad.");</script>'
safe_str = xss_shield.escape(unsafe_str)
print(safe_str)
详细说明请看PyPi或GitHub上的README
xss-shield是完全自由的库,采用MIT许可证。目前最新版本是v1.1.0