Lua Curl的一般应用
作者:糖果
Curl是一个WEB开发常用的工具,直接用官网的翻译
curl是一个开源的命令行工具,也是一个库,用于传输URL语法的工具,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMTP, SMTPS, Telnet and TFTP等。
在lua中,curl就是以库的形式存在的,安装过程比较简单:
sudo luarocks install luacurl
另外,curl还是支持代理的方式访问主机,这个很有用,之后会用一个模拟DDOS攻击程序说明他的用处。
这一次,我们用一个和SAE云平台相关的机能,说明pycurl的使用。
简单的说明一下,SAE云平台是国内较早的云开开放平台之一,经过多年的积累,有广大的用户基础,提供便利的开发平台,最近开放了一个实时LOG查询功能。用户可以通过其对外开放的REST API,查询自己运行在云平台上的APP产出的LOG。
文档说明:
接入流程概述:
1.计算取得安全签名 ...
LUA的WEB开发框架Vanilla
作者:糖果
图片:vanilla_logo.jpg
这次我们介绍的框架和以往有些不同,最大的不同是,这是介绍的是一个国产Openresty Lua WEB框架,名字叫做Vanilia
我们先简单的安装,和创建一个建工的工程,然后分析一下项目的源码。
我们假定用户用系统是centos。
1.安装luarocks和lua-dev开发部件。
yum install lua-devel
yum install luarocks
2.安装vanilla。
luarocks install vanilla
3.使用vanila的命令工具,自动生成工程代码。
3.1创建工程
vanilla new app_name(工程名称)
cd app_name
3.2启动工程
vanilla的起动模式分要两种模式,一种是开发模式[ development ]
vanilla start [--trace]
另一种是,产品模式。(production)
VA_ENV=production vanilla start [--trace]
我们采用的是产品模式启动,可以看一下vanilla启动后的效 ...
CSRF攻击预防的Token生成原理
作者:糖果
以往我们讲到CSRF,谈及都是CSRF的攻击原理,这次讲一下预防CSRF,生成Token背后的
加密原理和具体实现例示。
1.Token构成。
从需求功能上来讲,为了防止CSRF工具,token需要具有不重复,另外,还含有特定的功能
信息,比如过期时间戳。
下面的图描述了一个token的数据构成:
Token的数据结构。
-----------------------------------------------------------------------------
| msg | separator | signature |
-----------------------------------------------------------------------------
| key | timestamp | . | Base64(s ...
LUA书
var jd_union_pid="936552349";var jd_union_euid="";
var jd_union_pid="936550394";var jd_union_euid="";
var jd_union_pid="936535377";var jd_union_euid="";
var jd_union_pid="936553329";var jd_union_euid="";
var jd_union_pid="936538385";var jd_union_euid="";
var jd_union_pid="936561407";var jd_union_euid="";
var jd_union_pid="936538386";var jd_union_euid="";
var jd_union_pid="936532392";var jd_union_euid="";
var jd_union_pid="936530400";var jd_union_euid="";
var jd_union_pid="936530401";var jd_union ...
Lua动态加载脚本( loadstring )
作者:糖果
下面是代码:
local lua_script = [[
local var = 1
print(var)
]]
local script = lua_script
local tb=assert(loadstring(script))()
print(tb[0].text)
const char* testfunc = "print (add(1.0, 2.0)) print(sub(20.1, 19))";
int main()
{
lua_State* L = luaL_newstate();
luaL_openlibs(L);
lua_register(L, "add", add);
lua_register(L, "sub", sub);
if (luaL_dostring(L, testfunc))
printf("Failed to invoke.\n");
lua_close(L);
...
LUA调用C语言实现的SO库
作者:糖果
这篇文章归纳lua5.1的C语言模库so的“标准”写法,代码都是编译通过的,可直接参考使用!
tangguo.h
#ifndef __tangguo_h__
#define __tangguo_h__
#include "lauxlib.h"
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
extern int add(lua_State* L);
extern int sub(lua_State* L);
extern int luaopen_libtangguo(lua_State* L);
static luaL_Reg libtangguo[] = {
{"add", add},
{"sub", sub},
{NULL, NULL}
};
#endif
tangguo.c
#include "tangguo.h"
int sub(lua_State* L) ...
Openresty 火焰图
这是群里的小伙伴分享,感谢这位小伙伴,mc!
信春哥,看文档。
Openresty最佳实践—讲火焰图
https://github.com/moonbingbing/nginx-systemtap-toolkit/blob/master/README-CN.markdown#sample-bt
LUA火焰图
https://github.com/openresty/stapxx#lj-lua-bt
具体的,可以参考以下文章: http://openresty.com.cn/pra_flame_install.html
Lua快速入门书
这是一本lua的入门书籍。
Nginx共享内存
本文由李航老师创建,李航老师的微博账号是:
http://weibo.com/lidaohang
为何巴西人能做出 Lua 这种出彩的东西?
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:冯东
链接:http://www.zhihu.com/question/24596411/answer/36516759
来源:知乎
再推荐一次这本书:Coding Places: Software Practice in a South American City (Acting with Technology): Yuri Takhteyev: 9780262018074: Amazon.com: Books本答案大部分观点都来自于上面这本书。如果想看短一点,可以看:From Brazil to Wikipedia
首先要说,Lua 在巴西受到的重视是非常低的。因为巴西没有 Blizzard 这样的公司,没有 Adobe 这样的公司,也没有人有热情维护一个独立的 web server 模块。Lua 初期的资金支持确实来自巴西本土的石油公司,但是从一开始 Lua 就肩负着另一项任务:出 paper。
当然,出 paper 这个动力会导致什么样的投入,就要看巴西国内的学术氛围。巴西国内的大学分为三个层次,从低 ...


