WAF学习_lua基础

Posted liqik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WAF学习_lua基础相关的知识,希望对你有一定的参考价值。

0x00:前言

ngx_lua_waf是一个基于ngx_lua的web应用防火墙。

地址:https://github.com/loveshell/ngx_lua_waf

0x01:Lua

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

  • 游戏开发
  • 独立应用脚本
  • Web 应用脚本
  • 扩展和数据库插件如:mysql Proxy 和 MySQL WorkBench
  • 安全系统,如入侵检测系统

0x02:基础

(1)基础
#! /usr/bin/lua
#! 的作用
告诉解释器,要用 /usr/bin/lua  解释脚本
(2)注释

--  单行注释

--[[

多行注释

多行注释

--]]

(3)变量

Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。

局部变量的作用域为从声明位置开始到所在语句块结束

a = 123

布尔变量只有nil和false

数字0,空字符串都是true

如果想要删除一个变量,那么给他赋值nil即可

(4)循环
#! /usr/bin/lua
sum = 0
num = 1
while num <= 100 do
    sum = sum + num
    num = num + 1
    -- Lua中没有 ++   +=
end
print("sum = ",sum)

-- for 循环
for i = 1,100 do
    sum = sum + 1
end
print("sum = ",sum)

--[[  
if判断
~= 是不等于 字符串的拼接操作符“..” io库的分别从stdin和stdout读写,read和write函数 --]] if age == 20 and sex == "Man" then print("男士等于20") elseif age > 20 and sex ~= "Woman" then print("非女士且大于20") else local age = io.read() print("Your age is "..age) end
(5)函数

function function_name(argument1,......)

  function_body

  return rusult

end

--[[ 函数返回两个值的最大值 --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result;
end
-- 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))

 

以上是关于WAF学习_lua基础的主要内容,如果未能解决你的问题,请参考以下文章

nginx_lua_waf安装测试

nginx+lua+ngx_lua_waf实现waf功能

记录ngx_lua_waf安装记录

使用Nginx+Lua实现waf

WAF防火墙学习

openresty 编译和WAF 组件安装配置