Fortinet white logo
Fortinet white logo

Handbook

6.0.0

Policy matching based on referrer headers and query strings

Policy matching based on referrer headers and query strings

Web proxy policies support creating web proxy addresses to match referrer headers and query strings.

Matching referrer headers

For example, to create a web proxy address to match the referrer header to block access to the following YouTube URL http://youtube.com/user/test321. The http request will have the following format:

GET /user/test321 HTTP/1.1

Host: www.youtube.com

User-Agent: curl/7.52.1

Accept: */*

Create the following web proxy addresses to match this page:

config firewall proxy-address

edit youtube

set type host-regex

set host-regex ".*youtube.com"

next

edit test321

set host "youtube"

set path "/user/test321"

set referrer enable

end

Then create two proxy policies, one that allows access to all traffic and a second one that blocks access to the page that matches the referrer header:

config firewall proxy-policy

edit 1

set uuid 92273e4e-8c53-51e7-a7bd-f26e6e15fc98

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "all"

set service "webproxy-connect"

set action accept

set schedule "always"

set utm-status enable

set profile-protocol-options "test"

set ssl-ssh-profile "test"

next

edit 2

set uuid d35ad06a-8c53-51e7-8511-17200f682a4a

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "test321"

set service "webproxy"

set action accept

set schedule "always"

set utm-status enable

set av-profile "default"

set profile-protocol-options "test"

set ssl-ssh-profile "test"

end

Matching query strings

To match the video with URL youtube.com/watch?v=XXXXXXXXX, (where XXXXXXXXX is an example YouTube query string) you need to match an HTTP request with the following format:

GET /user/watch?v=GLCHldlwQsg HTTP/1.1

Host: www.youtube.com

User-Agent: curl/7.52.1

Accept: */*

Create the following web proxy addresses to match this video or query string:

config firewall proxy-address

edit "youtube"

set uuid 4ad63880-971e-51e7-7b2e-c69423ac6314

set type host-regex

set host-regex ".*youtube.com"

next

edit "query-string"

set uuid 7687a8c0-9727-51e7-5063-05edda03abbf

set host "youtube"

set path "/watch"

set query "v=XXXXXXXXX"

end

Then create two proxy policies, one that allows access to all traffic and a second one that blocks access to the page that matches the query string

config firewall proxy-policy

edit 1

set uuid 92273e4e-8c53-51e7-a7bd-f26e6e15fc98

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "all"

set service "webproxy-connect"

set action accept

set schedule "always"

set utm-status enable

set profile-protocol-options "test"

set ssl-ssh-profile "test"

next

edit 2

set uuid d35ad06a-8c53-51e7-8511-17200f682a4a

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "query-string"

set service "webproxy"

set action accept

set schedule "always"

set utm-status enable

set av-profile "default"

set profile-protocol-options "test"

set ssl-ssh-profile "test"

end

Policy matching based on referrer headers and query strings

Policy matching based on referrer headers and query strings

Web proxy policies support creating web proxy addresses to match referrer headers and query strings.

Matching referrer headers

For example, to create a web proxy address to match the referrer header to block access to the following YouTube URL http://youtube.com/user/test321. The http request will have the following format:

GET /user/test321 HTTP/1.1

Host: www.youtube.com

User-Agent: curl/7.52.1

Accept: */*

Create the following web proxy addresses to match this page:

config firewall proxy-address

edit youtube

set type host-regex

set host-regex ".*youtube.com"

next

edit test321

set host "youtube"

set path "/user/test321"

set referrer enable

end

Then create two proxy policies, one that allows access to all traffic and a second one that blocks access to the page that matches the referrer header:

config firewall proxy-policy

edit 1

set uuid 92273e4e-8c53-51e7-a7bd-f26e6e15fc98

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "all"

set service "webproxy-connect"

set action accept

set schedule "always"

set utm-status enable

set profile-protocol-options "test"

set ssl-ssh-profile "test"

next

edit 2

set uuid d35ad06a-8c53-51e7-8511-17200f682a4a

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "test321"

set service "webproxy"

set action accept

set schedule "always"

set utm-status enable

set av-profile "default"

set profile-protocol-options "test"

set ssl-ssh-profile "test"

end

Matching query strings

To match the video with URL youtube.com/watch?v=XXXXXXXXX, (where XXXXXXXXX is an example YouTube query string) you need to match an HTTP request with the following format:

GET /user/watch?v=GLCHldlwQsg HTTP/1.1

Host: www.youtube.com

User-Agent: curl/7.52.1

Accept: */*

Create the following web proxy addresses to match this video or query string:

config firewall proxy-address

edit "youtube"

set uuid 4ad63880-971e-51e7-7b2e-c69423ac6314

set type host-regex

set host-regex ".*youtube.com"

next

edit "query-string"

set uuid 7687a8c0-9727-51e7-5063-05edda03abbf

set host "youtube"

set path "/watch"

set query "v=XXXXXXXXX"

end

Then create two proxy policies, one that allows access to all traffic and a second one that blocks access to the page that matches the query string

config firewall proxy-policy

edit 1

set uuid 92273e4e-8c53-51e7-a7bd-f26e6e15fc98

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "all"

set service "webproxy-connect"

set action accept

set schedule "always"

set utm-status enable

set profile-protocol-options "test"

set ssl-ssh-profile "test"

next

edit 2

set uuid d35ad06a-8c53-51e7-8511-17200f682a4a

set proxy explicit-web

set dstintf "wan2"

set srcaddr "all"

set dstaddr "query-string"

set service "webproxy"

set action accept

set schedule "always"

set utm-status enable

set av-profile "default"

set profile-protocol-options "test"

set ssl-ssh-profile "test"

end