使用python xss-shield 库防止网站遭受注入攻击

60 阅读1分钟

XSS 是常见的网络攻击类型之一

什么是XSS

我的理解:

在很多网页中,用户输入的字符将被插入到 HTML中(例如用户评论),或者被嵌入SQL语句中(例如用户登录)当攻击者输入的是一些有特殊意义的字符时,比如 他将可以在网页中执行 javascript 脚本。

试想如果平台没有做好XSS 的防护,那么攻击者可以在评论内容中执行 JavaScript, 那么他很容易就能把这篇文章中的链接指向钓鱼网站,或替换这篇文章的内容。

如何阻止XSS

本质上就是要把用户输入的一些危险字符替换掉

比如把 < 替换成 &lt;

XSS shield 库的简介

如果你用过 Flask 的话,你一定听说过 Markupsafe, 它也是Pallets的项目。你不妨去GitHub 上看看它的源码(它真的是很小的项目了)。

但是Markupsafe 的escape() 函数选项并不多。

于是我写了与Markupsafe类似的XSS shield 库

你可以在PyPI 上找到它

xss-shield​pypi.org/project/xss-shield/

GitHub

安装方法

非常简单

$ 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