Dec 25
Во многих статьях и книгах описан принцип HTTP авторизации в PHP, поэтому здесь я не буду его описывать. Общеизвестен и факт, что переменные $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] создаются лишь при использовании php как модуля для сервера Apache.
В этом небольшом топике я опишу как добиться кроссплатформенности HTTP авторизации как в модульной версии php, так и в cgi.
Сперва в папку со скриптом необходимо поместить файл .htaccess со следующим содержимым:
Это позволит записывать пару login/password в переменную окружения, названную HTTP_AUTHORIZATION.
Затем добавим в наш скрипт строчки:
if(isset($_SERVER['HTTP_AUTHORIZATION']))
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
Оригинал статьи здесь.
Написал [YS.PRO] :: тэги: cross-platform, http, php, security, авторизация, безопасность, кроссплатформенность




Последние комментарии