1,nginx内置变量

nginx 有很多内置变量可以进行简单的过滤。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$arg_name
请求行中的name参数。
$args
请求行中参数字符串。
$cookie_name
名为name的cookie。
与$uri相同。
$http_name
任意请求头的值;变量名的后半部为转化为小写并且用下划线替代横线后的请求头名称。
$host
“Host”请求头的值,如果没有该请求头,则为与请求对应的虚拟主机的首要主机名。
$query_string
与$args相同。
$realpath_root
按root指令或alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径。
$remote_addr
客户端IP地址。
$remote_port
客户端端口。
$remote_user
为基本用户认证提供的用户名。
$request
完整的原始请求行。
$request_body
请求正文。在由proxy_pass指令和 fastcgi_pass指令处理的路径中, 这个变量值可用。
$request_body_file
请求正文的临时文件名。处理完成时,临时文件将被删除。 如果希望总是将请求正文写入文件,需要开启client_body_in_file_only。 如果在被代理的请求或FastCGI请求中传递临时文件名,就应该禁止传递请求正文本身。 使用proxy_pass_request_body off指令 和fastcgi_pass_request_body off指令 分别禁止在代理和FastCGI中传递请求正文。
$request_completion
请求完成时返回“OK”,否则返回空字符串。
$request_filename
基于root指令或alias指令,以及请求URI,得到的当前请求的文件路径。
$request_method
HTTP方法,通常为“GET”或者“POST”。
$request_time
请求处理的时间,单位为秒,精度是毫秒(1.3.9, 1.2.6);请求处理时间从由客户端接收到第一个字节开始计算。
$request_uri
完整的原始请求行(带参数)。
$scheme
请求协议类型,为“http”或“https”。
$status
响应状态码。
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
客户端TCP连接的信息,在支持套接字选项TCP_INFO的系统中可用。
$uri
当前请求规范化以后的URI。变量$uri的值可能随请求的处理过程而改变。 比如,当进行内部跳转时,或者使用默认页文件

特别需要注意的几个:

1
2
3
4
5
6
$arg_name
请求行中的name参数。
$http_name
任意请求头的值;变量名的后半部为转化为小写并且用下划线替代横线后的请求头名称。
$cookie_name
名为name的cookie

这个几个都是变量其中的name是具体的参数名称。

设计的特别精巧,和lua的类似。具体进行参数拦截就这样直接写了。

2,拦截head中token

比如在做移动客户端开发的时候,timestamp,token,sign,uuid参数

这个4个参数都是必须加上的。增加防刷的安全性。

token是客户端登录token。sign是请求数据签名。

防止别人拿到url然后刷登录接口。

最后一个是uuid,设备号,也能起到一定的防护作用。

禁用一个header头里面的uuid为Android-uuid-1122998800。注意这里是$http_uuid 后面的uuid 是header头里面的参数。

1
2
3
if ($http_uuid ~ 'android-uuid-1122998800') {
    return 403 "Error uuid forbidden.";
 }

进行ip拦截。如果发现有ip攻击直接禁用掉。

1
2
3
if ($remote_addr ~ '10.198.2.2') {
     return 403 "Error uuid forbidden.";
  }

禁用攻击日志。这部分日志会影响数据处理,直接禁用掉。

1
access_log off;

4,总结

可以禁用跳转,处理,其中里面有常用的内置变量。

可以根据自己的业务逻辑组织下。提供系统稳定性。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

nginx里的变量,实现简单过滤。的更多相关文章

  1. Nginx 内置变量,细化规则,真实IP获取及限制连接请求

    希望下周测试之后能用起来!!!感觉很有用的. http://www.bzfshop.net/article/176.html http://www.cr173.com/html/19761_1.htm ...

  2. nginx内置变量总结

    nginx内置变量 2019-02-28 变量名称 变量用途 $atg_PARAMETER      客户端GET请求中   PARAMETER字段的值                        ...

  3. nginx内置变量 大全

    nginx内置变量 内置变量存放在  ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的.总而言之,这些变量代表着客户端请求头的内容,例如$http_u ...

  4. python 里内嵌函数是可以修改外部环境里的变量的

    python 里内嵌函数是可以修改外部环境里的变量的 关键是细节. 如果是简单变量类型, 那么不可以. 但是如果是容器类变量, 则没问题了. 代码如下: class G: pass def f(): ...

  5. Nginx 如何自定义变量?

    之前的两篇文章 Nginx 变量介绍以及利用 Nginx 变量做防盗链 讲的是 Nginx 有哪些变量以及一个常见的应用.那么如此灵活的 Nginx 怎么能不支持自定义变量呢,今天的文章就来说一下自定 ...

  6. jQuery简单过滤选择器

    <html xmlns="http://www.w3.org/1999/xhtml"> <head>     <!--jQuery选择器详解 根据所获 ...

  7. Python的变量及简单数据类型

    Python的变量及简单类型 1.  变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...

  8. Python编程从入门到实践笔记——变量和简单数据类型

    Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...

  9. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

随机推荐

  1. 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。

    QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储 ...

  2. python数据结构与算法(一)

    1.序列中的N个元素赋值给变量 data = [1,2,3,"string!",["python","php"]] num_1,num_2, ...

  3. redis-cli

    redis-cli --stat //监控key的数量,内存占用 redis-cli --scan //列出所有的key redis-cli --bigkeys //列出占用内存较大的key redi ...

  4. web前端开发_文件/目录/样式/函数等命名规范

    页面的命名规则 统一用翻译的英文命名(推荐) 统一用拼音命名(拼音的简化也可) 如果文件名过长,企业要提前约定一份缩写的规范,如pro—product 例如: 首页—index 产品列表—prolis ...

  5. HTML5 Canvas绘图基本使用方法, H5使用Canvas绘图

    Canvas 是H5的一部分,允许脚本语言动态渲染图像.Canvas 定义一个区域,可以由html属性定义该区域的宽高,javascript代码可以访问该区域,通过一整套完整的绘图功能(API),在网 ...

  6. 洛谷 P4408 [NOI2003]逃学的小孩

    题目传送门 题目描述 Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:“喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?”一听说要考试,Chris的父母就心急如焚, ...

  7. 阿里云服务器ecs配置之安装jdk(转)

    一.安装环境 操作系统:Centos 7.4 JDK版本:1.8 工具:Xshell5.Xftp5 二.安装步骤 第一步:下载安装包 (官网)链接: 下载适合自己系统的jdk版本,如图:我下载的是64 ...

  8. python基础内容扩展复习

    目录 一.关于编辑器 二.解释型和编译型 三.数据类型 1 一切皆对象 2 深浅拷贝 3 可变类型和不可变类型 四.闭包函数 一.关于编辑器 python开发:pycharm(收费),vscode(免 ...

  9. 题解:2018级算法第四次上机 C4-最小乘法

    题目描述: 样例: 实现解释: 和字符串处理结合的动态规划,个人认为比较难分析出状态转移方程,虽然懂了之后挺好理解的 知识点: 动态规划,字符串转数字 题目分析: 首先按照最基础:依据题意设计原始dp ...

  10. python 装饰器(一):装饰器基础(一)装饰器形式,何时执行

    简介 装饰器是可调用的对象,其参数是另一个函数(被装饰的函数). 装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象. 形式 假如有个名为 decorate 的装饰器: ...