【问题标题】:JQuery Ajax VotingJQuery Ajax 投票
【发布时间】:2009-05-13 23:21:51
【问题描述】:

我使用这个JQuery Ajax Voting system guide 作为粗略的参考,但我对它的安全性有点担心。目前,本指南基本上存储了某物的 ID 及其投票统计信息。

我想提出一个类似的想法,但我还需要包含用户 ID,这样用户只能投票一次。这存储在 PHP 会话变量中,我想知道被调用的 ajax 页面是否可以访问该会话。如果不是,那么传递参数的安全方法是什么,这样它就不会被中间攻击的人劫持或伪造。

【问题讨论】:

  • 在阅读了相同的教程后,在谷歌搜索中偶然发现了这个! - 好问题,+1 :) 我正在制作一个与 SO 非常相似的投票系统。
  • @Tim Post 很高兴你发现它有帮助:)

标签: php ajax security jquery


【解决方案1】:

只要您在脚本顶部执行session_start();,服务器就可以通过AJAX 调用访问会话数据。您还应该确保清理数据,因为我看到该教程正在执行查询而不通过 mysql_real_escape_string 传递数据。您还应该在投票表上执行UNIQUE KEY(user_id, id) 以确保没有欺骗。

【讨论】:

  • 我实际上使用的是 PDO 而不是 mysql 库,所以我将使用参数化查询。此外,我确实在 (user_id, id) 上设置了一个复合键,它也是唯一的。我认为应该涵盖它,对吧?
【解决方案2】:

您应该能够从实际存储用户投票的处理程序中提取相同的 Session 变量。

作为一项基本的安全措施,您可以在 AJAX 调用之前通过投票加密页面上的 UserId,如果在会话中不可用,则在插入时解密 UserId。

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多