nginx利用lua语言实现软waf的示例代码
首先下载nginx的安装包:
wget http://nginx.org/download/nginx-1.14.0.tar.gz
这里下载的是nginx1.14的包,感觉安装包太老的话可以去官网下载新的版本:
官网地址:http://nginx.org/
但是我这里测试使用的不是nginx的安装包,而是使用的淘宝开发师提供的OpenResty;
其官方网站OpenResty® - Open source我们读起来是非常的方便。OpenResty是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。
用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。所以本身OpenResty内部就已经集成了Nginx和Lua,所以我们使用起来会更加方便。
下载OpenResty:
wget https://openresty.org/download/openresty-1.19.3.2.tar.gz
解压缩:
tar -zxvf openresty-1.19.3.2.tar.gz && cd openresty-1.19.3.2
编译安装:
./configure && make && make install
进入OpenResty的目录,找到nginx:
cd /usr/local/openresty/nginx/
在conf目录下的nginx.conf添加如下内容:
location /lua{
default_type 'text/html';
content_by_lua 'ngx.say("HELLO,world
")';
}
通过浏览器访问测试:

测试nginx没问题后,就开始本次实验:
利用XSS检测lua脚本
这里我写了一个简单XSS检测,直接上代码
local function has_xss(payload)
if payload and type(payload) == "string" then
if string.find(payload, "
发现攻击,已禁止





