nginx getimagesize from local server: 403
Vincent M.
mouseless at free.fr
Wed Aug 4 11:50:00 UTC 2021
I found the reason!
I have check and my files and folders are already with rights: 0755 for
folders and 0644 for files.
I checked also the owner of the website and unfortunately I did some
test and did not resolved the issue.
I have put a file aaa.jpg on my website root folder:
Locally this code is working fine:
list($imageWidth, $imageHeight) =
getimagesize('http://local-mywebsite.com/aaa.jpg');
echo $imageWidth;
So I change the code to:
list($imageWidth, $imageHeight) =
getimagesize('https://mywebsite.com/aaa.jpg');
echo $imageWidth;
and I get the error:
2021/08/04 11:33:00 [error] 2196869#2196869: *388196 FastCGI sent in
stderr: "PHP message: PHP Warning:
getimagesize(https://mywebsite.com/aaa.jpg): failed to open stream: HTTP
request failed! HTTP/1.1 403 Forbidden
I change the right to 0777 to file and still have the 403.
I changed the owner of the file aaa.jpg to www-data and changed the
owner of the website root folder to www-data as well but still have the 403.
On /etc/nginx/nginx.conf file I have:
user www-data;
I didn't know where to look at!
And unexpectedly I remembered that yesterday I added some rules to nginx
to block bad bots. Which I didn't do locally.
I added this configuration rules:
https://github.com/mitchellkrogza/nginx-badbot-blocker
<https://github.com/mitchellkrogza/nginx-badbot-blocker>
And took a look at it and notified this rules:
## Add here all hosts that should be spared any referrer checking.
## Whitelist all your own IPs in this section, each IP followed by a 0;
geo $bad_referer {
127.0.0.1 0;
111.111.111.111 0;
}
I added the comment for 127.0.0.1 and it's now working fine.
What is the line 111.1111.111.111 0 for ?
Do you have any advise on this rules added from
https://github.com/mitchellkrogza/nginx-badbot-blocker ?
Thanks :)
Le 03/08/2021 à 21:14, Vincent M. a écrit :
>
> Hello all,
>
> I have a 403 error when trying to use the PHP function getimagesize on
> nginx based web server:
>
> list($imageWidth, $imageHeight) = getimagesize($imagesSource['Main']);
>
> Where $imageSource['Main'] is like:
>
> https://mywebsite/include/php/render/canvas/VR/2/image/U35p/ver//bgColor/ffffff/widthMM/300/heightMM/388/aube-sunny.jpg
>
> It's an image generated by PHP-imagick module and is not locally
> available. This image can be opened by a browser with no problem.
>
> To generate this image which go through 404. Nginx is configured like
> that:
>
> error_page 404 = /url_rewriting.php;
> And in the file url_rewriting.php, we analyse the URL to see if it's
> real 404 or an image which must be generated:
>
> if((isset($urlHash[2]) && $urlHash[2] === 'render')) {
> ...
> header('Status: 200 OK', false, 200);
> chdir('include/php/render/'.$_GET['render']);
> require ('include/php/render/'.$_GET['render'].'/render_img.php');
> exit;
> }
> All is working fine but not the getimagesize from my own server.
>
> What is strange is that it's working fine on my development
> environment which has the same versions of nginx and PHP and pretty
> the same configuration.
>
> It might a configuration issue or a right issue on a certain file but
> I don't know where to check.
>
> Thank you,
> Vincent.
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20210804/9cb723e3/attachment.htm>
More information about the nginx
mailing list