0

我正在尝试在 C# 中为 SharePoint 构建一个应用程序,该应用程序将包含一个带有 upvote/downvote 系统的小组件。

这似乎有问题。如果我想让它安全,我会使用服务器端代码进行投票,但这听起来像是糟糕的用户体验。

使用 AJAX,用户体验要好得多,但您很容易受到黑客攻击。

我看到的主要漏洞是为用户分配投票。我假设无论接口(让我们假设 Ajax 到 List)这些都是 JavaScript 中设置的变量。

在浏览器中启动任何 JS 控制台并为帖子/问题提交投票似乎非常容易。

除非我想针对 page_load 上的用户名验证每一个投票(很多额外的周期),否则我觉得我仅限于在更新面板中嵌套中继器,并在该函数内部处理投票,生成 SPUser 身份服务器端。

任何使用过嵌套在带有按钮的更新面板中的中继器的人都会证明这是一场噩梦:(

我的替代方案是什么?

4

1 回答 1

1

使用客户端变量的漏洞始终是一个问题,因此最好通过服务器端参与来减少利用的可能性。

您可以创建一个函数,该函数使用一个键来创建仅为当前用户创建的投票参数。如果传递的参数以任何方式被修改,即与预期的输出不匹配,则拒绝它。如果需要,您可以构建阻止特定用户投票的功能,如果他们超过了畸形请求的阈值。

然后,您可以在提交时确定当前用户是否已经对相应的项目进行了投票,以防止重复投票,尽管我会阻止用户首先投票以获得更好的用户体验。

于 2012-07-02T17:22:44.773 回答