403 Forbidden Error While Sending GET Data

2019-02-26 05:36发布

问题:

My server is Linux server and reseller is mine. So i can reach WHM panel, too .

When GET data comes like :

a.php?url=http://www.domain.com

return 403 Forbidden.

But if data comes like this :

a.php?url=www.domain.com

it's working.

So, http:// generating an error. How can i fix it ?

Also, this is returning 403 Forbidden :

a.php?url=http%3a%2f%2fwww.domain.com

Thanks.

回答1:

This is definitely one of the mod_security CoreRules. I've had the very same issue on my previous host. I don't remember the rule name however.

You should investigate the core rules version. 2.1.1 would be current, and might have relaxed that peculiar filter. If updating or reconfiguring doesn't help you would else have to base64_encode() your url parameter (simpler encodings are sniffed by mod_security).

SecFilterDebugLog /var/log/apache2/modsec_log
SecFilterDebugLevel 4

Enables the debug logging of mod_security, so you can find out which rule actually caused the issue - if you want to disable it (advisable). http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/modsecurity-manual.html#07-logging



回答2:

You need to encode the query string so that it is valid, see urlencode()



回答3:

re: 404 -- perhaps you're rewriting the query string to the path somewhere, and you don't have AllowEncodedSlashes on?



回答4:

It is mod_security's 10_asl_rules.conf causing this error.

It is the .htaccess is picking up on something in that URL and sending forbidden headers.