1) 默认固件允许非管理网段的设备访问管理页面。
看起来http服务器本该监听management IP,结果监听成了0.0.0.0。
解决方案:更新固件到2.08版本
Release Notes: PD.02.22_Release_Notes.pdf
CR_0000247836
Symptom/Scenario: If a second VLAN (non-management VLAN) is created, the clients connected to that non-management VLAN can establish an HTTP connection to the management interface of the switch when such a connection should only be allowed from the management VLAN.
2) 添加ACL identifier之后无法删除(Remove按钮为不可用状态)
原因:交换机管理网页的Javascript代码有问题。
打开浏览器控制台,可以发现JS代码的执行报错
进一步分析代码和单步追踪,发现Remove按钮对应的状态控制代码有误。
首先注意到,在fp_dt_button_init
这个按钮初始化函数中,所有界面按钮(包括remove_button
)被赋予了初值#
.
紧接着,在随后的for(i=...) b[i]
循环中,按钮们被赋予了各自id。其中b
对应界面中的列表,而b[i]
则是各个按钮。在这个for循环中,代码通过执行b[i].id.match()
来匹配名称,从而判断当前的b[i]
是哪个按钮。
而问题就出在查找dt_multi_edit
时:通过观察网页界面和检查HTML代码,我们注意到,dt_multi_edit
这个按钮根本不存在! 这就导致高亮部分的代码从来未被执行,而multi_edit_button
这个变量也因此一直维持着初值#
而从未被正确初始化。
在随后的逻辑中,代码会依次为各按钮赋予可点击状态;当执行$(multi_edit_button).xxx
语句时,就会因为找不到对象而抛出控制台中所见的异常;由于异常没有被捕获和静默处理,代码执行中断,后续代码中的$(remove_button).enable
语句就没有机会得以执行,因此Remove按钮保持在了不可用状态。
解决方案:手动在浏览器控制台中修改JS代码
multi_edit_button
的身份已经无从知晓。其或许在开发过程中曾经存在过,但后续因为某种原因被移除或者改名,但是相应的控制代码没有移除,导致试图操作不存在的元素而报错。而这部分的界面流程显然也没有被严格测试,或许是只检查了ACL列表默认为空时的情况,彼时Remove本就不该可用,进而掩盖了bug;亦或是没注意到浏览器控制台的报错信息;或者说,对于OfficeConnect这样非专业定位的产品,本来就没好好检查代码质量呢?(笑)