LinuxDev 板


LINE

目前有个问题 浏览器上输入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://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1486026867.A.54E.html
1F:推 yvb: 应该是 server 回应 401 的 HTTP状态码, 由浏览器自行产生的. 02/03 06:29
2F:→ yvb: 看了一下boa源码,该回应即response.c的send_r_unauthorized() 02/03 06:43
3F:→ carpo5279: 好,谢谢,我在研究一下,有问题可以用站内信问你吗? 02/03 09:51
4F:推 yvb: 站内信当然可以,但我未必懂. 在此和大家一同讨论应该更好. 02/03 18:03
5F:→ carpo5279: 我大概了解了,但我想请教另个问题,要如何设计浏览器 02/05 23:02
6F:→ carpo5279: 在输入3次错误後,自动导向一个错误讯息的页面,主要是 02/05 23:04
7F:→ carpo5279: 如何抓到浏览器输入错误3次的值。 02/05 23:06
8F:推 yvb: 光靠401产生认证视窗的方式没办法,只能依赖浏览器本身行为, 02/06 19:44
9F:→ liang168: Boa 是很久的东西为何还要用? 02/06 19:46
10F:→ yvb: 比如 IE 会在3次错误後停止尝试, Chrome 仍继续跳认证视窗. 02/06 19:46
11F:→ yvb: HTTP本身是stateless的, server无法确认是否同一浏览器错几次 02/06 19:51
12F:→ yvb: 因此需要引入stateful机制如cookie/session/url-ext之类, 02/06 19:53
13F:→ yvb: 使用如多数用户网站的登入, 搭配後台程式进行验证及计次等... 02/06 19:58
14F:→ carpo5279: liang168,我是公司新人被叫去修产品BUG,里面有用到boa 02/06 21:15
15F:→ carpo5279: yyb,我浏览器帐号密码输入正确後,之後再连就不需要输 02/07 09:08
16F:→ carpo5279: 入帐号密码,所以伺服器是不是已经有采用session..之 02/07 09:10
17F:→ carpo5279: 类的方法,谢谢。 02/07 09:11
18F:→ CP64: basic auth 浏览器会把他 cache 起来一段时间就是 02/07 10:05
19F:→ CP64: 至於 session 或是 cookie 之类的要看你的 cgi 有没有做 02/07 10:06
20F:推 yvb: 原来是贵公司的产品用到. 所以是视浏览器对 HTTP 认证失败的 02/07 20:02
21F:→ yvb: 後续行为不同为 bug? 不知您对 HTTP 这个协定中, 诸如 02/07 20:02
22F:→ yvb: HTTP status, HTTP header, HTTP auth, HTTP cookie 的了解 02/07 20:03
23F:→ yvb: 情况如何; 以及认证这部分, 在产品中的内部运作流程又是如何, 02/07 20:03
24F:→ yvb: 是直接改写 boa 程式码逹成, 或是使用 uClinux boa 的 auth 02/07 20:04
25F:→ yvb: 搭配设定档, 还是叫用 cgi/scripting 来处理认证? 02/07 20:04
26F:→ carpo5279: 我用站内信跟你说明,这边回应有点麻烦。 02/08 21:05
27F:→ yvb: 发文者应该可以用大写 E 编辑文章啊... 02/08 21:16
※ 编辑: carpo5279 (36.231.52.106), 02/08/2017 22:29:52
28F:推 yvb: 编辑若非修改原内容, 而是追加, 回推文, 那写在推文下较佳. 02/10 18:53
29F:→ yvb: 其实 HTTP auth 最大的问题(缺点)就是定义得太简单,缺少诸如 02/10 18:56
30F:→ yvb: 检查次数,要求登出等机制 (无法登出是否又会被当另一个bug?) 02/10 18:58
31F:→ yvb: 所以一切要靠browser自定行为. 不知贵公司是怎样的产品, 02/10 19:02
32F:→ yvb: 登入成功的後续是静态网页?CGI?或是仍在boa中加怎样的处理? 02/10 19:03
33F:→ yvb: 若是另外使用CGI或scripting languages (asp,php...), 02/10 19:05
34F:→ yvb: 那也许考虑把认证机制做成cookie/session型式会更好. 02/10 19:07
35F:→ yvb: 是否一定坚持要使用HTTP auth ? 02/10 19:08
36F:→ yvb: 虽然 HTTP auth 搭配 cookie 可能还是有 partial solution, 02/10 19:09
37F:→ yvb: 但使用上应该还蛮蹩脚的... 02/10 19:11
38F:→ yvb: 大致上是认证失败就检查是否有某cookie,没有就设定初值, 02/10 19:13
39F:→ yvb: 有就检查是第几次的值,然後重设新值或设定清除; 02/10 19:15
40F:→ yvb: 若认证成功也要设定清除. 02/10 19:16
41F:→ carpo5279: 好,谢谢,我在研究一下。 02/11 19:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP