<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span><div>Hello all,</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">Want to share what I came up with.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">See, I have 3 key strings , say abc, pqr and xyz.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0);
 font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">And a valid submission will be https://x.y.com/?abc=1.2.3.4&pqr=asdf&xyz=123888598</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; color: rgb(0, 0, 0); ">abc is numeric, with . in between, and ending in digit(s), think of a uuid like 2.16.840.1.113883</div><div style="background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; color: rgb(0, 0, 0); "><br></div><div style="background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif;
 color: rgb(0, 0, 0); ">pqr is only alpha, but has 2 choices, asdf or lkjh</div><div style="background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; color: rgb(0, 0, 0); "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">xyz is purely numeric</div><div style="background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; color: rgb(0, 0, 0); "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">I do not use this for anything other than reverse proxy, if the pattern matches.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif;
 background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">Here is what I come up with:</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span class="Apple-tab-span" style="white-space: pre; ">         </span>location / {</div><div><span class="Apple-tab-span" style="white-space:pre">                 </span>....</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span class="Apple-tab-span" style="white-space:pre">           
        </span>....</div><div><span class="Apple-tab-span" style="white-space:pre">                         </span></div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>if ($args ~ ^((abc=(\d+\.)+(\d+))\&(pqr=(asdf|lkjh))\&(xyz=\d+))$){<span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space: pre; ">                  </span>proxy_pass http://127.0.0.1:890/?$1;</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span class="Apple-tab-span" style="white-space:pre">                   </span>}</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style:
 normal; ">Still I can not limit the repetition, like (abc=(\d{3,10})). Seems nginx, does not support {}. Is that true ? </div><div style="background-color: transparent; ">Provided that I can predict if there can not be more than 64 characters for abc how do I do it ?</div><div style="background-color: transparent; "><span style="background-color: transparent; font-size: 16px; "><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><span style="background-color: transparent; font-size: 16px; ">And what about "if is evil"</span><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">Does that make sense in 1.2.6 too ??</div></span></div><div style="font-family: 'times new roman', 'new york', times, serif;
 font-size: 12pt; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">Tell me I am wrong !!</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">Thanks all.</div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal; ">tjoseph.</div>  <div style="font-size: 12pt; font-family: 'times new
 roman', 'new york', times, serif; "> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Thomas Joseph <tjoseph1@ymail.com><br> <b><span style="font-weight: bold;">To:</span></b> "nginx@nginx.org" <nginx@nginx.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, 11 December 2012 12:57 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: I want help...<br> </font> </div> <br><div id="yiv1556684550"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><div><span>Did I tell that I am looking into a reverse proxy situation ? No.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new
 roman', 'new york', times, serif; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span>My mistake. I want to have a reverse proxy, that would filter the incoming</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span>and pass-on/reject  upon the rules.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span>[SSL enabled web-client]=>[NGINX]=>{filtering]=>[My own custom built HTTP
 application]</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span>[SSL enabled web-client]<=[NGINX]<=[My own custom built HTTP application] <br></span></div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">Thanks,</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">tjoseph.</div>  <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div style="font-size: 12pt; font-family:
 'times new roman', 'new york', times, serif; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Thomas Joseph <tjoseph1@ymail.com><br> <b><span style="font-weight:bold;">To:</span></b> "nginx@nginx.org" <nginx@nginx.org> <br> <b><span style="font-weight:bold;">Sent:</span></b> Tuesday, 11 December 2012 12:26 AM<br> <b><span style="font-weight:bold;">Subject:</span></b> I want help...<br> </font> </div> <br><div id="yiv1556684550"><div><div style="color:rgb(0, 0, 0);background-color:rgb(255, 255, 255);font-size:12pt;font-family:'times
 new roman', 'new york', times, serif;"><div>Hello all,</div><div><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">What is the best way to block un-expected submissions?</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">For example, I have this puzzle:</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span
 style="background-color:transparent;"> ((aaa=(\d{1,8}\.)+(\d{1,8}))\&(bbb=\w{10,30})\&(ccc=\d{1,10}))</span><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span style="background-color:transparent;"><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><span style="background-color:transparent;">aaa is uuid, bbb is alphanumric, ccc is just numeric.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">I want to
 have nginx validating this regex,
 and one more, if someone craft</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">(ddd=xyz) in the submission url, it has to FAIL.</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">Pls, comments are welcome.</div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; ">tjoseph.</div><div
 style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div><div style="color: rgb(0, 0, 0); font-size: 16px; background-color: transparent; font-style: normal; font-family: 'times new roman', 'new york', times, serif; "><br></div></div></div></div><br>_______________________________________________<br>nginx mailing list<br><a rel="nofollow" ymailto="mailto:nginx@nginx.org" target="_blank" href="mailto:nginx@nginx.org">nginx@nginx.org</a><br><a rel="nofollow" target="_blank" href="http://mailman.nginx.org/mailman/listinfo/nginx">http://mailman.nginx.org/mailman/listinfo/nginx</a><br><br> </div> </div>  </div></div></div><br>_______________________________________________<br>nginx mailing list<br><a ymailto="mailto:nginx@nginx.org" href="mailto:nginx@nginx.org">nginx@nginx.org</a><br><a href="http://mailman.nginx.org/mailman/listinfo/nginx"
 target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br><br> </div> </div>  </div></body></html>