Есть сервер в локальной сети (пусть будет 10.10.1.2), на нём крутится php скрипт, который отдаёт html страничку со статистикой. Для входа требуется простая авторизация, которая устанавливает куки.
Если на сервер заходить из локальной сети, то всё ок, но для внешних пользователей (и дебага) приходится делать port forwarding через ssh (ssh -L 127.0.0.1:8080:10.10.1.2:80 192.168.32.2) на локальный 8080 порт, а 192.168.32.2 - гейтвей, который видит подсеть 10.10.х.х.
И вроде бы сервер отдаёт правильные Set-Cookie, но браузер почему-то откидывает их с ошибкой ""set-cookie domain attribute was invalid with regards to the current host url"
Вот так ставятся куки:
setcookie('auth',$hash,time()+$sesstime,"/",$_SERVER['HTTP_HOST'],false,false);
Вот заголовки из локальной сети:
Set-Cookie: auth=001228333034422a366337452e6667435573656816157d673430427f636763447e6d632c1c566f6e64; expires=Thu, 01-Apr-2021 19:04:51 GMT; Max-Age=18000000; path=/; domain=10.10.1.2
А это при порт форвардинге:
Set-Cookie: auth=431d622765774d602236744a6472324c417c712b194e377130771f64783b7b1a3379306656033a2473; expires=Thu, 01-Apr-2021 19:06:04 GMT; Max-Age=18000000; path=/; domain=127.0.0.1:8080
Вроде ж правильный domain приходит в браузер.
Ещё некоторые переменные, может помогут понять:
["REMOTE_ADDR"]=> string(11) "10.10.1.2"
["HTTP_HOST"]=> string(14) "127.0.0.1:8080"
["SERVER_NAME"]=> string(11) "10.10.1.2"