|
这个不是漏洞,也不是BUG,道理我上面已经说了。你可以再考虑下
至于你提到的:
后台代码仍然可以被调用, 如果恶意用户通过篡改提交的请求数据, 就可以执行其授权之外的操作.
的确是这样的,所以说UI只是状态的反映,而不是状态本身。如果你看AppBox的代码,在按钮的执行事件中都要进行权限检查
换个角度说:
客户端的所有状态都可以手工改变,按钮是否禁用在客户端就能改变,那么服务器端又如何得知从客户端拿到的按钮禁用状态是真的,还是伪造的呢?
至于你提到的:
这就错了,原生Asp.Net按钮控件也是一样的。要注意区分 点击禁用按钮 和 执行按钮的脚本 两者的区别!
我写了个例子,验证这个说法:
- <asp:Button runat="server" ID="Button1" Text="禁用的" Enabled="false" OnClick="Button1_Click" />
- <input type="button" onclick="__doPostBack('Button1', '');" value="启用的" />
- <br />
- <br />
- <asp:Label runat="server" ID="Label1"></asp:Label>
- <br />
- <br />
- 下面这个LinkButton是为了在页面上生成 __doPostBack 函数,请忽略
- <asp:LinkButton runat="server"></asp:LinkButton>
复制代码
后台代码:
- public partial class WebForm2 : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- Label1.Text = DateTime.Now.ToString();
- }
- }
复制代码
点击 “启用的” 按钮,后台调用的是 “禁用的” 按钮的执行事件,正常运行:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|