我在这里发表的另一篇文章中的答案让我感到困惑:https://sharepoint.stackexchange.com/questions/40057/is-an-updatepanel-a-bad-decision/40412#40412
我的理解是,从安全的角度来看,处理Button_Click的UpdatePanel与普通回发并没有什么不同。UpdatePanel仍然在做一个完整的回发,它只是在UpdatePanel的范围内异步发生。
请看下面的场景:
我正在处理一个向上投票的点击事件。我既可以使用AJAX提交新投票,也可以使用UpdatePanel中的Button_Click提交新投票。(理所当然地认为投票应该是异步的。对每一次投票都有一个回发将是可怕的IMO)
为了避免投票作弊,我将投票绑定到一个项目和一个用户,因此在提交投票时,我需要包括这两件事。
使用AJAX,这两个字段似乎都很容易被破解,以至于有人可以获得一组用户名,然后运行一个循环,在短时间内提交数百张选票。
使用UpdatePanel,我至少可以获取当前用户服务器端的标识,而不会向web服务公开任何项创建方法。
这不是从根本上更安全了吗?我是否误解了UpdatePanel的工作原理?
发布于 2012-08-01 07:46:33
从安全的角度来看,UpdatePanel确实等同于回发。这只是一个输出如何部分呈现的问题。
现在,关于你的场景:
使用纯ajax方法不会以任何方式危害安全性。仅仅因为它是javascript,并不意味着你被迫接受欺骗,实际上是通过在你的请求中接收用户作为一个参数。这就是您拥有身份验证、cookies等的目的。使用承担者和身份从传入的请求中识别用户。
简而言之,您可以使用UpdatePanel和AJAX实现一个安全的实现。
注释:AJAX不会强迫你在安全实现之外公开Controller,服务器上的端点实际上可以只是一个MVC Controller、一个HttpHandler等。
https://stackoverflow.com/questions/11749644
复制相似问题