Незапятнанный auth php. Как я могу использовать базовую HTTP-аутентификацию в PHP? Как узнать полный путь к файлу
5 ответов
Как работает PHP? Если это произойдет через Apache mod_cgi, я боюсь, что вы не сможете получить информацию об аутентификации. Apache не передаст его в приложения CGI, если вы не скомпилируете его с флагом SECURITY_HOLE_PASS_AUTHORIZATION . (Независимо от того, действительно ли это отверстие безопасности или нет, зависит от того, имеют ли другие пользователи на вашем сервере более низкие или более высокие привилегии, чем пользователи вашего сайта.)
Если это IIS CGI, вы должны убедиться, что настроен только "Анонимный доступ к каталогу", или IIS попытается выполнить вход и аутентификацию самих учетных данных.
Echo "
Hello {$_SERVER["PHP_AUTH_USER"]}.
";Отверстие безопасности в HTML-инъекции (ну, если оно сработало). Используйте htmlspecialchars() . Человек, это страница PHP doc, полная очень сомнительных советов и кода.
Вы также можете посмотреть на $_SERVER["HTTP_AUTHORIZATION"] , хотя я подозреваю, что это проблема mod_cgi, и в этом случае ни одна из переменных не будет присутствовать, и вам придется прибегать к имени на основе файлов cookie. Или перейдите на хост с более современным подходом к хостингу PHP, например FastCGI или mod_php.
в.htaccess добавьте это:
и в начале вашего script добавьте это:
List($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]) = explode(":" , base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)));
Попробуйте следующее:
\n"); print("
\n"); print("