编程语言
首页 > 编程语言> > 使用HTTP基本身份验证从PHP发出FORM POST请求

使用HTTP基本身份验证从PHP发出FORM POST请求

作者:互联网

我希望这是一个相对直接的事情,而且我的谷歌技能在这个场合让我失望了.我有一个BASIC身份验证保护资源,我想让PHP执行POST HTTP请求.

我已经尝试将身份验证:基本(加密的u / p数据)注入到看起来不起作用的标题中 – 所以我想知道,Greyskull的功能是否可以表示StackOverflow提供任何指导.

$req .= "&cmd=_initiate_query";
$header = "POST /someendpoint HTTP/1.1\r\n".
        "Host:example.com\n".
        "Content-Type: application/x-www-form-urlencoded\r\n".
        "User-Agent: PHP-Code\r\n".
        "Content-Length: " . strlen($req) . "\r\n".
        "Connection: close\r\n\r\n";
$fp = fsockopen ('ssl://example.com', 443, $errno, $errstr, 30);
if (!$fp) {
    // HTTP ERROR
} else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
        $result .= fgets ($fp, 128);
    }
    fclose ($fp);
}

解决方法:

使用:

$header = "POST /someendpoint HTTP/1.1\r\n".
        "Host:example.com\n".
        "Content-Type: application/x-www-form-urlencoded\r\n".
        "User-Agent: PHP-Code\r\n".
        "Content-Length: " . strlen($req) . "\r\n".
        "Authorization: Basic ".base64_encode($username.':'.$password)."\r\n".
        "Connection: close\r\n\r\n";

应该工作 – 你确定它是一个基本的身份验证系统吗?使用像CharlesProxy这样的东西来观察原始标题数据可能是值得的,以确保它是一个身份验证(然后你也可以复制授权字符串!).

标签:php,post,basic-authentication
来源: https://codeday.me/bug/20191006/1861857.html