HTTP 403 — Forbidden
HTTP 403
Forbidden
The server understood the request and is refusing to allow it, and logging in will not help.
What 403 actually means
You are known, or your identity is irrelevant, and the answer is still no. Unlike 401, there is no challenge and no invitation to try again with credentials — the server has decided this request is not permitted, full stop. On the public web the two dominant causes are wrong filesystem permissions on the server and a security layer such as a WAF, bot filter or geoblock deciding you should not be here.
Common causes
- File or directory permissions on the server deny read access to the web process
- Directory listing is disabled and there is no index file
- A WAF, bot-protection service or rate-limiting rule blocked the request
- IP allowlisting or country-level geoblocking
- A logged-in user lacks the role needed for that resource
- A signed URL, CDN token or S3 policy has expired or does not grant this action
- Hotlink protection rejecting a request whose `Referer` is another site
If you're just trying to view the page
- If you should have access, log in — some sites return 403 rather than 401 for signed-out visitors
- Turn off a VPN or proxy; blocks by IP reputation and by country are common
- Clear cookies and cache for the site, then reload
- Try a different network — a shared office or mobile IP that someone else abused can be blocked for everyone on it
- If it is your own site's admin area, contact whoever manages access rather than retrying
If it's your site
- Check filesystem permissions and ownership — directories usually need 755 and files 644, owned by or readable to the web server user
- On Linux with SELinux enforcing, check the file context (`ls -Z`); correct Unix permissions plus a wrong context still yields 403
- Read the WAF and CDN logs before touching the application; a security rule is more often the cause than the code
- Check for `deny` rules in `.htaccess`, Nginx `location` blocks, or bucket policies
- Verify signed-URL expiry and clock sync when using S3, CloudFront or similar
- Return 404 instead of 403 where merely revealing that a resource exists leaks information
Reference
- Status code
- 403
- Reason phrase
- Forbidden
- Category
- 4xx — Client Error
- Cacheable by default
- No
- Defined in
- RFC 9110 §15.5.4
Common questions
- What does HTTP 403 mean?
- The server understood the request and is refusing to allow it, and logging in will not help. You are known, or your identity is irrelevant, and the answer is still no. Unlike 401, there is no challenge and no invitation to try again with credentials — the server has decided this request is not permitted, full stop.
- How do I fix a 403 error?
- If you should have access, log in — some sites return 403 rather than 401 for signed-out visitors
- Is 403 a client error or a server error?
- 403 is in the 4xx range, which means client error. The request itself was the problem, so retrying it unchanged will usually return the same code.
Related pages
- 404 Not Found The server is reachable and working, but there is nothing at the address you ask
- 401 Unauthorized You need to authenticate, and either you did not or your credentials were reject
- 429 Too Many Requests You have sent more requests than the service allows in a given period.
- 400 Bad Request The server could not understand the request because something about it is malfor
- 413 Content Too Large The request body is bigger than the server is willing to accept.
- 422 Unprocessable Content The request is well-formed and understood, but the data in it fails the rules.
- 405 Method Not Allowed The URL exists, but it does not accept the HTTP method you used.
- 409 Conflict The request cannot be completed because it clashes with the current state of the
- 415 Unsupported Media Type The server will not accept the format of the body you sent.
- 408 Request Timeout The server gave up waiting for the client to finish sending its request.
- 410 Gone The resource was deliberately removed and is not coming back, and there is no fo
- 451 Unavailable For Legal Reasons The content is blocked because of a legal demand — a court order, takedown notic