目前有个问题
浏览器上输入ip后连接server时会跳出一个要求输入帐号密码的认证视窗
http://imgur.com/a/zlL2e
想问这个认证视窗是在server里的哪个程式呼叫的?
谢谢
以下内容针对yvb提出的问题做回复
这个BUG就像你推文所说的,不同浏览器对于认证失败后的处理有所不同
,上头是把这个情况当作是一个BUG,目标是希望能够都是3次认证失败导向
一个错误讯息的页面
我对http只有接触这个bug才去了解而已, HTTP status, HTTP header, HTTP auth
这边都有去稍微了解,有找到server 里对应到的code, HTTP cookie这部分还不是
很了解,没有找到对应的code
至于认证的处理
当server判断使用者没通过认证会回401状态,好像是由这里来完成的
void send_r_unauthorized(request * req, const char *realm_name)
{
SQUASH_KA(req); req->response_status = R_UNAUTHORIZED;
if((req->http_version != HTTP09))
{
req_write(req, http_ver_string(req->http_version));
req_write(req, " 401 Unauthorized" CRLF);
print_http_headers(req);
req_write(req, "WWW-Authenticate: Basic realm=\".\"" );
req_write(req, realm_name); req_write(req, CRLF);
req_write(req, "Content-Type: " HTML CRLF CRLF); /* terminate header */
}
..
}
我在更改的时候也是在这附近更改,单纯加入一个变量当作他送出认证的次数,超过
3次就不执行if的那段code,这样虽然可以达到目的,但有个问题是,当我在网页按f5或
是开启新页面连接时,我找不到一个正确位置来重置这个变量,导致它一直停留在错误讯
息页面
当server在检查使用者帐号密码这部分,我有看到boa server里有code是在做这方面的处
理,我对你所提到的那些方法不懂,所以不确定它里面有没有使用到那些方法。
谢谢
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.147.6.146
※ 文章网址: https://www.ptt.cc/bbs/LinuxDev/M.1486026867.A.54E.html