Nginx:如果头不存在或错误,拒绝请求

如果我有标题:X_HEADER1& X_HEADER2,如果这两个头文件未设置或不包含正确的值,我想拒绝所有请求。这样做最好的方法是什么?

谢谢

您可以在位置块之前或位置块中使用两个IF语句来检查标题,然后返回403错误代码(如果存在)。或者,您可以使用这些IF语句重写特定位置块,并拒绝该位置的所有内容:

if($ http_x_custom_header){
返回403; }

参考:
http://wiki.nginx.org/IfIsEvil
http://wiki.nginx.org/HttpAccessModule

添加更多详细信息/评论/请求:

if($ http_x_custom_header)
{return 405; }
这看起来看是否存在标题

如果要检查是否存在正确的值,则首先需要将正确的值映射到变量。

map $http_x_header $is_ok {
    default "0";
    Value1  "1";
    Value2  "1";
    Value3  "1";
}

if ($is_ok) {
    return 405; 
}

这首先将头值映射到其是否可以,然后检查该变量是否正常。

编辑:在地图块之后删除分号,因为这会导致错误。

http://stackoverflow.com/questions/18970620/nginx-reject-request-if-header-is-not-present-or-wrong

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Nginx:如果头不存在或错误,拒绝请求