用途:
防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
防止svn/备份之类文件泄漏
防止ApacheBench之类压力测试工具的攻击
屏蔽常见的扫描黑客工具,扫描器
屏蔽异常的网络请求
屏蔽图片附件类目录php执行权限
防止webshell上传1.下载并解压luajit 2.0.5wget http://luajit.org/download/LuaJIT-2.0.5.tar.gztar -zxvf LuaJIT-2.0.5.tar.gzcd LuaJIT-2.0.5make install PREFIX=/data/luajit(选自己的目录)2.软连接ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.23.下载并解压ngx_devel_kitwget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gztar -zxvf v0.3.0.tar.gz4.下载并解压lua-nginx...
简介
LuaAPI
1.创建新表
2.取表中元素
3.表中的元素赋值
4.取表元素
4.表元素赋值
5.对table的一些操作[不引发原方法]
6.复制栈上元素并压入栈
参考资料
简介
研究lua也有一段时间了,对lua也算是小有了解,对于lua的api可能和其他脚本语言不是
很相同,使用lua来编写,lua原生api都采用C语言开发的,理解这些api含义对于理解lua
语言设计的本身又起着至关重要的作用,故此在这里记录下,lua-api具体含义。
LuaAPI
1.创建新表
void lua_createtable(lua_State *L, int narr, int nrec)
创建一个新表,并将它放在栈顶,narr和nrec分别制定该table的array和hash部分的预分配
元素的数量。
无返回值
栈高度+1,栈顶元素是新的table。
#define lua_newtable(L) lua_createtable(L, 0, 0)
创建表的另一...
tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,userdata的值,是c++对象的地址。userdata的metatable,是一个tolua++建立的,记录了userdata对应c++类型信息的表格,包括导出的成员变量、成员函数等信息。
对于成员变量的读取赋值,tolua++是在metatable里新建了.get和.set两个表。两个表里分别存储了以变量名为键,以读取设置c函数为值的表项。在metatable的index和newindex里,以变量名为键,从.get和.set表里取得读取设置函数并调用。
对于成员函数的调用,只需要以函数名为键,函数为值,存储在metatable里就好了。
传入c++对象的tolua++函数是tolua_pushusertype。一般情况下,第一次使用这个函数将一个c++对象push到lua堆栈上时,才会新建userdata。tolua++会以c++对象地址为键,userdata为值,将键值对存储在tolua_ubox表里。下次推入同样的c++对象时,从这个表里取出userdata推入...
学习 Lua 编程语言的比较
无聊之余,想要找个东西来打发时间和排解心中的百无聊赖,于是乎,想要重新玩一下 corona 这个游戏开发引擎。当然,第一步就是重温下以前学过的 lua 编程语言,这次我打算在 Windows 操作系统上摆弄下这玩意。
首先进入lua 官网找到二进制文件的下载地址,下载好了之后,解压后先把文件夹里的luax.ext(x 代表版本号)文件修改为lua.exe,然后将该目录添加到 Path 系统变量中,在终端输入lua -v检查是否配置完成。
注意点
调用函数时,被调用的函数一定要在调用者之前定义
变量变量的作用域:
全局变量:除非显式声明为 local,其它所有变量都是全局变量;
本地变量:使用 local 来声明变量
表(table)变量:特殊类型的变量,值不可以为 nil
容易混淆的例子:
local a, b = 1, 2 --该写法正确
local a = 1, b = 2 --该写法错误
数据类型Lua 是动态类型语言,变量没有类型,只有值有类型,下面是数据类型:
nil
boolean
number
string
function
u...
An Empirical Evaluation of In-Memory Multi-Version Concurrency Control介绍MVCC是目前最流行的并发控制协议,本文是论文原文的翻译,省略掉实验部分,感兴趣的同学可以去参照论文原文。这篇论文从4个方面分析了MVCC设计取舍,包括如下:
concurrency control protocol
version storage
garbage collection
index management
简介MVCC概述MVCC最大的优点是能够让数据库有更大的并发量,例如一个使用MVCC的数据库管理系统(DBMS)可以同时让一个事务读取一条数据的老版本而另一个事务更新同一条数据。MVCC的这些优点让它成为了近几年数据库的最佳选择,下表(表1)总结了近三十年来数据库MVCC的一些实现。
DBMS元数据MVCC DBMS为事务以及元组维护着一些相似的元数据。
每一个事务都有一个全局唯一且递增的事务Tid,并发控制协议会使用Tid标识被访问的元组。
每一个元组的头部有四个元数据字段,如图1。txn-id是元组的...
基本语法
交互式编程
脚本式编程
注释
单行注释
多行注释
标识符
关键词
全局变量
数据类型
nil
bool
number
string
table
function
thread
userdata
基本语法交互式编程所谓的交互式编程的意思,其实就是在命令行中输入程序就可以立即查看效果。
脚本式编程将Lua代码保持在.lua文件中执行。
两种编程方式下的简单的helloword程序:
注释单行注释两个减号。
1--
多行注释这个东西有点儿小奇怪,习惯了就没问题了。
1234--[[ 多行注释 多行注释 --]]
总的:
12345print("helloword")--print("helloworld")--[[print("helloworld")--]]
标识符标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。
最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 ...
一直以来写代码不求甚解,感觉这样不好,从今天开始起读各数据框架的源代码,学习学习再学习
今天看的是pyspark里lazy evaluation的处理,python和scala不同不是函数式的。那这是怎么办到的呢?
首先所有的数据集在spark内部都叫做rdd,这在pyspark里也有定义:
class RDD(object):
<span class="string">""</span>"
A Resilient Distributed Dataset (RDD), the basic abstraction <span class="keyword">in</span> Spark.
Represents <span class="keyword">an</span> immutable, partitioned collection of elements that can be
op...
一安装 mac编译配置:
git clone https://github.com/keplerproject/luasql
cd luasql
vim config
LUA_LIBDIR ?= (PREFIX)/lib/lua/(PREFIX)/lib/lua/(PREFIX)/lib/lua/(LUA_SYS_VER)
LUA_DIR ?= (PREFIX)/share/lua/(PREFIX)/share/lua/(PREFIX)/share/lua/(LUA_SYS_VER)
LUA_INC ?= /usr/local/include/luajit-2.1
# - Oracle OCI8
DRIVER_LIBS_oci8 ?= -L/opt/oracle/instantclient_11_2 -lz -lclntsh
DRIVER_INCS_oci8 ?= -I/opt/oracle/instantclient_11_2/sdk/include
安装 instantclient-sqlplus下载sql:instantclient-sqlplus
cd /opt/o...
1.下载安装
1. 先去Lua官网下载最新版 luaRango-MBP:~ rango$ curl -R -O http://www.lua.org/ftp/lua-5.3.3.tar.gz
2. 然后解压压缩包Rango-MBP:~ rango$ tar zxf lua-5.3.3.tar.gz
3. cd 到解压后的文件夹Rango-MBP:~ rango$ cd lua-5.3.3
4. 然后编译测试Rango-MBP:lua-5.3.3 rango$ make macosx test
正常情况会看到如下信息12src/lua -vLua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio`
上面几步总概况1234$ curl -R -O http://www.lua.org/ftp/lua-5.3.3.tar.gz$ tar zxf lua-5.3.3.tar.gz$ cd lua-5.3.3$ make macosx test
5. 安装 lua 需要输入开机密码1Rango-MBP:lua-5.3.3 rango$ sud...