我有几个运行基于unix的OS + cgminer软件的Antminer L3 +。它具有受密码保护的网络界面,就像http://10.12.1.1/cgi-bin/reboot.cgi
我可以从这样的浏览器直接访问它http://root:root@10.12.1.1/cgi-bin/reboot.cgi
来重新启动设备。
但是,当我从终端运行相同的消息时,出现curl http://root:root@10.12.1.1/cgi-bin/reboot.cgi
401错误。
我还尝试在PHP中使用带有参数的curl来模仿浏览器,但仍然出现401错误。
知道为什么会这样吗?
整个用户名:password @ url方案现在是非标准的。它是标准的,但是相关恶意攻击的可能性变得如此巨大,以至于开发了新的标准,该标准将放弃对旧标准的任何支持。例如,有些人会创建长URL(太长而无法在公共地址栏中完全看到),例如paypal.com/blah/blah%40badsite.com/blah,人们会信任该URL,因为它始于paypal.com/,但是%40是一个@网站,它将“ paypal.com/”文本变成badsite.com用户名的一部分。常见修正=禁止在网址中使用用户名
—
TOOGAM
我理解您的意思,但是以上应用程序的范围是LAN,并且能够通过脚本而不是浏览器来自动执行任务。
—
Jsp
所以?如果自动化工具的行为与浏览器的行为相似,那么您的区分会有什么影响?更直接地:如果Firefox和Chrome和Microsoft Web浏览器都采用了新的行为,而cURL和WGet之类的自动化工具使用了相同的行为,那么为什么要指出您要使用自动化工具代替浏览器呢?如果这些软件类别的行为相同,那么我看不到您与众不同的意义。(类似地:事实上,您在LAN上可能意味着您实际上更安全,但这并不意味着您的软件对于WAN不够安全。)
—
TOOGAM
我用--user'username:password'参数更新了答案。感谢您的输入。
—
Jsp