如何使用LUA脚本动态解析外部智能设备的通信协议LUA调用有数组参数的C函数C调用LUA函数返回的表 有一个项目,需要通过串口或者TCP/IP读取一些设备的运行参数,例如温湿度、发电机等,通信协议一般是MODBUS或者电总协议的帧格式协议。为了使程序使用更多的设备,打算用LUA来解析通信协议。这样子在设备在不同的应用场合时,只需要更新或者增加LUA脚本就可以接入新的设备类型。实现思路每个唯一LU
转载 2024-05-16 07:16:51
150阅读
OpenResty+Lua实现WAF防火墙WAF功能白名单黑名单防止SQL注入防止CC攻击若服务器收到CC攻击,一分钟内请求数大于60,则会将对方ip封进黑名单文件结构waf 项目文件夹 init.lua 初始化函数access.lua 请求入口处lab.lua 工具方法如获取客户端ip,防止GET/POST请求的SQL注入等。config.lua 配置文件white_ip.txt 白名单b
最近看到一个关于vs的lua调试插件, 装了vs2012试了下, 忍不住发此文总结下lua各种调试工具Decoda     这是现今地球上调试lua5.1最方便的工具, 没有之一. 强大的注入式调试, 性能极高.支持 挂接进程, 变量展开, 断点等各种日常所需. 早期的Decoda是收费工具, 因此质量非常高.     Decoda现在
ngx_lua模块API说明 #Ngx指令 lua_code_cache on | off;作用:打开或关闭 Lua 代码缓存,影响以下指令: set_by_lua_file , content_by_lua_file, rewrite_by_lua_file, access_by_lua_file 及强制加载或者reload Lua 模块等.缓存开启时修改LUA代码需要重启nginx,不开启时则
转载 2024-05-22 12:02:07
112阅读
介绍lua和c的亲密接触,靠的是一个虚拟栈。lua通过这个虚拟栈来实现和c之间值的互传。栈上的每一个元素是一个lua值(nil,number,string...)。当lua调用c函数的时候,这个函数会得到一个新的栈,这个栈独立于c函数本身的栈,也独立于lua自己的栈。它里面包含了lua要传给c的所有参数,然后c函数会把返回的结果放入这个栈中返回给调用者。对于栈的查询操作,如果按照栈的规则,只能拿到
 1.1 参考loveshell的waf实现思路,再此感谢下面其中一部分是转载1.2 WAF的功能支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。支持URL白名单,将不需要过滤的URL进行定义。支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。支持Cookie过滤,匹配自
转载 2024-05-22 20:41:03
71阅读
Wireshark是一款著名的网络协议分析工具,基于GPLv2协议开源,支持Linux、Windows、MacOS等多个操作系统。 Wireshark is the world's foremost network protocol analyzer, and is the de facto (and often de jure) standard across many industries
  redis服务器创建了一个伪客户端用来执行lua命令,lua_scripts字典用来保存lua脚本命令:   eval <脚本内容> <key个数> [key列表] [参数列表]:执行指定的脚本   示例:127.0.0.1:6379> eval 'return "hello " .. KEYS[1] .. ARGV[1]' 1 redis world "hell
转载 2024-03-21 09:30:44
60阅读
Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释   写一个程序,总是少不了注释的。   在Lua中,你可以使用单行注释和多行注释。   单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。   多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止
转载 2024-03-30 07:59:17
278阅读
webserver层进行校验,直接告诉应用层校验结果,就可以避免上面的问题。openresty+Lua就是这样一种webserver上安全、稳定、高性能的实现,并且开发成本低的方案。新建,access.lua 代码:local secretkey='1234567890abcdefghi' if ngx.var.cookie_uid == nil or ngx.var.cookie_usernam
目录安装Nginx下载解压安装包安装依赖安装启动测试访问安装LuaJIT安装ngx_devel_kit安装lua-nginx-module在已安装的Nginx中添加Lua模块Lua脚本测试编写lua脚本修改nginx.conf连接单例Redis下载第三方依赖库复制第三方依赖库在nginx配置文件中添加依赖编写脚本文件执行连接Redis集群下载第三方依赖库复制第三方依赖库在nginx配置文件中添加依
转载 2024-03-04 16:56:05
83阅读
项目要求对lua脚本进行加密,查了一下相关的资料 ,得知lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,试了一下,确实可行。 下面是使用原生的lua解释器编译字节码: 1、新建一个名为1.lua的文件,里面只有一句话print("Hello Lua"),新建一个空的out.lua脚本文件 2、开始--运行--cmd 3、luac -o out.lua 1.lu
Nginx的扩展模块Lua一、概念二、特性三、应用场景四、lua的安装五、lua的语法第一个Lua程序Lua的注释标识符关键字运算符全局遍历&局部变量Lua数据类型Lua控制结构if then elseif elsewhile循环repeat循环for循环六、ngx_lua模块概念ngx_lua模块环境准备OpenRestryngx_lua的使用init_by_lua*init_work
大家好,今天我们聊一下现代应用中常见的一种交互验证方式:滑块验证。滑块验证也被称为拼图验证码,是一种用于验证用户是否为人类而不是机器人的常见方法。用户需要完成验证后才能继续往下操作,而机器人通常很难模拟这种人类行为。也因为这样,滑块验证已经成为了网站注册、登录、商品防爬以及其他交互过程中的一种重要安全措施。简单思路滑块验证的核心思路是要求用户完成一个任务来验证其非机器人的身份。大多数应用通常包括将
转载 2024-07-12 11:02:43
75阅读
Lua 基本语法Lua 学习起来非常简单,我们可以创建第一个 Lua 程序!第一个 Lua 程序交互式编程Lua 提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果。Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用:$ lua -i $ Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio >在命令行中,输入
转载 2024-02-16 22:08:03
73阅读
本文讲的是使用 Lua 完成 OAuth2 的身份验证, 在此说明该教程将不提供详细的技术指导,教您如何使用 OpenResty + Lua 构建自己的认证层,而是讲解一下解决方案背后的处理过程。这是一个真实的案例:moltin's API 如何依赖 OpenResty + Lua 来为所有的用户处理 oauth
转载 2024-03-24 12:18:03
175阅读
验证码分类 验证码,主要是用于区分 人 与 机器人(robot)的行为而采取的防范自动化的产物,其类型可以分为 识别型 和 行为类验证码。识别类验证码包括:若干个单一种类的字符,如大小写字母、数字、中文,有可能是以上一种以上的组合形式出现,为了增加识别的难度,往往采用变形字符、干扰线、点、模糊背景等策略,早期验证码的背景为单一的白色,且字符分布在一行,而现在的验证码图片中随机分布若干字符,字符颜色
Lua语法介绍 目录名称Lua语法介绍白话Lua教程初始变量字符串逻辑运算分支判断函数table循环详解string库跨文件调用Lua语法教程 白话Lua教程初始初识Lua Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么?这意味着Lua虚拟机可以很方便的嵌入别的程序里,从而为应用程序提供灵活的扩展和定制功能。而整个Lua虚拟机编译后仅仅一百余K,经过适当的裁
转载 2024-04-10 21:58:44
97阅读
推荐开源项目:XlsxToLua - Excel表格数据转化为Lua脚本工具项目地址:https://gitcode.com/zhangqi-ulua/XlsxToLua项目简介XlsxToLua 是一个强大的工具,能够将Excel文件中的数据自动转换为Lua代码,极大地简化了数据处理和配置文件生成的过程。对于游戏开发、数据分析或者需要大量结构化数据管理的项目来说,这是一个非常实用的解决方案。技术
转载 2024-07-25 07:42:10
36阅读
多进程操作数据库–锁 问题情景: A进程与B进程对同一个数据库进行操作,A进程不停插入数据,B进程不停删除数据 当B在删除数据的同时A去插入数据,此时A的操作会失败,执行结果返回值为5问题原因: 操作数据库时,数据库会自动上锁(共享锁、排他锁等),insert语句与delete语句都会上排他锁,delete正在操作时insert无法获取锁,不能进行,该语句执行失败,然后停止。 以下是A
转载 2024-03-26 23:53:04
56阅读
  • 1
  • 2
  • 3
  • 4
  • 5