[PATCH] Making $invalid_referer accessible in Perl (and Lua)

agentzh agentzh at gmail.com
Tue May 21 23:29:36 UTC 2013


The $invalid_referer variable is always created with the
NGX_HTTP_VAR_NOHASH flag in ngx_http_referer_module, which
unfortunately prohibits its use in embedded dynamic languages like
Perl and Lua (through the ngx_http_get_variable function).

Below attaches a patch that removes this flag.

This issue was originally reported by Fry-kun.


--- nginx-1.5.0/src/http/modules/ngx_http_referer_module.c 2013-05-06
03:27:10.000000000 -0700
+++ nginx-1.5.0-patched/src/http/modules/ngx_http_referer_module.c
2013-05-21 16:04:49.340286168 -0700
@@ -396,8 +396,7 @@ ngx_http_valid_referers(ngx_conf_t *cf,

     ngx_str_set(&name, "invalid_referer");

-    var = ngx_http_add_variable(cf, &name,
-                                NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOHASH);
+    var = ngx_http_add_variable(cf, &name, NGX_HTTP_VAR_CHANGEABLE);
     if (var == NULL) {
         return NGX_CONF_ERROR;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nginx-1.5.0-invalid_referer_hash.patch
Type: application/octet-stream
Size: 562 bytes
Desc: not available
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20130521/5703e3d5/attachment.obj>

More information about the nginx-devel mailing list