nginx里的变量,实现简单过滤。
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_methodHTTP方法,通常为“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里的变量,实现简单过滤。的更多相关文章
- Nginx 内置变量,细化规则,真实IP获取及限制连接请求
希望下周测试之后能用起来!!!感觉很有用的. http://www.bzfshop.net/article/176.html http://www.cr173.com/html/19761_1.htm ...
- nginx内置变量总结
nginx内置变量 2019-02-28 变量名称 变量用途 $atg_PARAMETER 客户端GET请求中 PARAMETER字段的值 ...
- nginx内置变量 大全
nginx内置变量 内置变量存放在 ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的.总而言之,这些变量代表着客户端请求头的内容,例如$http_u ...
- python 里内嵌函数是可以修改外部环境里的变量的
python 里内嵌函数是可以修改外部环境里的变量的 关键是细节. 如果是简单变量类型, 那么不可以. 但是如果是容器类变量, 则没问题了. 代码如下: class G: pass def f(): ...
- Nginx 如何自定义变量?
之前的两篇文章 Nginx 变量介绍以及利用 Nginx 变量做防盗链 讲的是 Nginx 有哪些变量以及一个常见的应用.那么如此灵活的 Nginx 怎么能不支持自定义变量呢,今天的文章就来说一下自定 ...
- jQuery简单过滤选择器
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <!--jQuery选择器详解 根据所获 ...
- Python的变量及简单数据类型
Python的变量及简单类型 1. 变量 在Python编程中,变量是用来存放值或对像的容器.变量的名称可以自定义,但需遵循一定的规范,否则可能会引发一些错误.Python的变量可以分为数字.字符和 ...
- Python编程从入门到实践笔记——变量和简单数据类型
Python编程从入门到实践笔记——变量和简单数据类型 #coding=gbk #变量 message_1 = 'aAa fff' message_2 = 'hart' message_3 = &qu ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
随机推荐
- java重试
项目中有很多需要重试的场景,而每次都得写如下的逻辑 for (int i=0;i++;i<retry){ try{ do(//逻辑代码); if(success){ break; } }catc ...
- iview表单验证--数字必填+校验
直接使用: { required: true, type:"integer", message:"请填写整数", trigger: "blur&quo ...
- 08 . Kubernetes之 ingress及Ingress Controller
Ingress简介 ingress是什么? 上篇文章介绍service时有说了暴露了service的三种方式ClusterIP.NodePort与LoadBalance,这几种方式都是在service ...
- 每日一题 - 剑指 Offer 30. 包含min函数的栈
题目信息 时间: 2019-06-24 题目链接:Leetcode tag:栈 难易程度:简单 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 m ...
- thinkphp将对象变成一维数组?
thinkphp使用select查询出的数据为二维数组,如果想将二维数组转一维,可以使用: $x为二维数组对象 php版本要大于5.5.0 $userid_array = array_column($ ...
- python 追踪函数调用
from flask import Flask import traceback app = Flask(__name__) @app.route('/') def hello_world(): tr ...
- 数据可视化之DAX篇(七) Power BI中用DAX生成的表如何添加索引列?
https://zhuanlan.zhihu.com/p/74732578 来源于知识星球中一个星友的问题,使用DAX在PowerBI中新建了一个表,如何为这个表添加索引列呢? 假如数据模型中只有一 ...
- scrapy 源码解析 (五):启动流程源码分析(五) Scraper刮取器
Scraper刮取器 对ExecutionEngine执行引擎篇出现的Scraper进行展开.Scraper的主要作用是对spider中间件进行管理,通过中间件完成请求.响应.数据分析等工作. Scr ...
- springmvc 重定向到外网地址
return new ModelAndView(new RedirectView("http://www.baidu.com"));
- python测试开发面试之深浅拷贝
先来道题热热身 a = ('a', 'b','c') c = copy.copy(a) d = copy.deepcopy(a) if c == d: print("c和d的值相等" ...