Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: modules/web/templates/adblockplus.org.conf.erb

Issue 4808447505727488: Issue 2301 - Improve beta.adblockplus.org configuration (Closed)
Patch Set: Created April 15, 2015, 12:20 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: modules/web/templates/adblockplus.org.conf.erb
===================================================================
new file mode 100644
--- /dev/null
+++ b/modules/web/templates/adblockplus.org.conf.erb
@@ -0,0 +1,220 @@
+# XSS and clickjacking prevention headers
+
+set $csp_frame "";
+if ($uri ~ ^/(:?\w\w(_\w\w)?/)?(?:index|firefox|chrome|opera|android|internet-explorer|safari|yandex-browser|maxthon)?$)
+{
+ set $csp_frame "; frame-src www.youtube-nocookie.com;";
+}
+add_header Content-Security-Policy "default-src \'self\'; img-src * data:; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\' $csp_frame";
+add_header X-Frame-Options "sameorigin";
+
+# User agent sniffing
+
+set $user_agent "";
+if ($http_user_agent ~ \bGecko/\d+)
+{
+ set $user_agent "firefox";
+}
+if ($http_user_agent ~ \bSafari/\d+)
+{
+ set $user_agent "safari";
+}
+if ($http_user_agent ~ \bChrome/\d+)
+{
+ set $user_agent "chrome";
+}
+if ($http_user_agent ~ \bMSIE\ \d+)
+{
+ set $user_agent "internet-explorer";
+}
+if ($http_user_agent ~ \bTrident/\d+)
+{
+ set $user_agent "internet-explorer";
+}
+if ($http_user_agent ~ \bEdge/\d+)
+{
+ set $user_agent "internet-explorer";
+}
+if ($http_user_agent ~ \bPresto/\d+)
+{
+ set $user_agent "opera";
+}
+if ($http_user_agent ~ \bOPR/\d+)
+{
+ set $user_agent "opera";
+}
+if ($http_user_agent ~ \bAndroid\s.*\bAppleWebKit/\d+)
+{
+ set $user_agent "android";
+}
+if ($http_user_agent ~ \bYaBrowser/\d+)
+{
+ set $user_agent "yandex-browser";
+}
+if ($http_user_agent ~ \bMaxthon/\d+)
+{
+ set $user_agent "maxthon";
+}
+
+sub_filter \' id="content" class="\' \' id="content" class="ua-$user_agent \';
+
+set $index_page "firefox";
+if ($user_agent != "")
+{
+ set $index_page $user_agent;
+}
+
+# Various redirects
+
+rewrite ^/(\w\w(_\w\w)?/)?changelog-1.3.1$ /$1\changelog-1.3 permanent;
+rewrite ^/downloads/(.*) https://downloads.adblockplus.org/$1 permanent;
+
+location /redirect
+{
+ if ($arg_link = "reporter_connect_issue")
+ {
+ rewrite ^ /forum/? redirect;
+ }
+ if ($arg_link = "reporter_other_link")
+ {
+ rewrite ^ /forum/? redirect;
+ }
+ if ($arg_link = "chrome_support")
+ {
+ rewrite ^ /forum/viewforum.php?f=10? redirect;
+ }
+ if ($arg_link = "opera_support")
+ {
+ rewrite ^ /forum/viewforum.php?f=14? redirect;
+ }
+ if ($arg_link = "safari_support")
+ {
+ rewrite ^ /forum/viewforum.php?f=18? redirect;
+ }
+ if ($arg_link = "knownIssuesChrome_filterstorage")
+ {
+ rewrite ^ /forum/viewtopic.php?t=23597? redirect;
+ }
+
+ set $lang "en";
+ set $link "";
+ set $anchor "";
+
+ if ($arg_link ~ "^share-")
+ {
+ set $link "share";
+ set $anchor "?a=minimal";
+ }
+ if ($arg_link = "gettingStarted")
+ {
+ set $link "getting_started";
+ }
+ if ($arg_link = "faq")
+ {
+ set $link "faq";
+ }
+ if ($arg_link = "filterdoc")
+ {
+ set $link "filters";
+ }
+ if ($arg_link = "subscriptions")
+ {
+ set $link "subscriptions";
+ }
+ if ($arg_link = "reporter_privacy")
+ {
+ set $link "privacy";
+ set $anchor "#abp_issue_reporter";
+ }
+ if ($arg_link = "contribute")
+ {
+ set $link "contribute";
+ }
+ if ($arg_link = "donate")
+ {
+ set $link "donate";
+ }
+ if ($arg_link = "acceptable_ads")
+ {
+ set $link "acceptable-ads";
+ }
+ if ($arg_link = "acceptable_ads_criteria")
+ {
+ set $link "acceptable-ads";
+ set $anchor "#criteria";
+ }
+ if ($arg_link = "contributors")
+ {
+ set $link "contributors";
+ }
+
+ if ($link = "")
+ {
+ return 404;
+ }
+
+ if ($arg_lang ~ ^(\w+))
+ {
+ set $lang $1;
+ }
+ if (!-f "$document_root/$lang/$link")
+ {
+ set $lang "!!";
+ }
+ set $langtest "$arg_lang $lang";
+ if ($langtest ~ "^(\w+)-(\w+) !!")
+ {
+ set $lang "$1_$2";
+ }
+ if (!-f "$document_root/$lang/$link")
+ {
+ set $lang "en";
+ }
+ if ($link = "share")
+ {
+ rewrite ^ https://share.adblockplus.org/$lang/? redirect;
Wladimir Palant 2015/04/15 12:26:54 While this works right now, the approach will have
+ }
+ rewrite ^ /$lang/$link$anchor? redirect;
+}
+
+location /devbuilds
+{
+ rewrite ^(.*) https://downloads.adblockplus.org$1;
+}
+
+# Locations still served by the legacy server
+
+location ~ ^(/blog|/releases|/development-builds|/atom|/rss|/category|/section|/author|/file_download|/textpattern|/default-static|/_override-static)($|/)
+{
+ try_files $uri @proxied;
+}
+location /forum
+{
+ try_files $uri @proxied;
+}
+location /subscriptions.xml
+{
+ try_files $uri @proxied;
+}
+location /subscriptions2.xml
+{
+ try_files $uri @proxied;
+}
+location /subscriptionStatus
+{
+ try_files $uri @proxied;
+}
+location /jsdoc
+{
+ try_files $uri @proxied;
+}
+location /403.html
+{
+ try_files $uri @proxied;
+}
+location @proxied
+{
+ proxy_pass https://server_16.adblockplus.org;
+ proxy_set_header Host adblockplus.org;
+ proxy_redirect https://adblockplus.org/ https://$host/;
+}

Powered by Google App Engine
This is Rietveld