使用:ColdFusion 10,JQuery 1.9,IIS
我制作了一个CFC(允许远程访问),它处理将注释插入数据库,无论它们是新注释还是对现有注释的回复。
我有一个表格,当你想发表评论时会提交给这个CFC。
目前我正在传递(作为隐藏字段)将变量传递给CFC,以告诉它要插入的注释的各种内容:例如:注释的User
(收件人ID)和引用的CommentID
(如果是回复)。这些值会发生很大变化,因为有时用户会回复其他用户的评论。
我不想在我的表单中发送隐藏变量,因为它很容易被恶意攻击者修改。如何使用表单变量(例如注释主体)发送主表单信息,但仅使用ColdFusion传递敏感变量,以便黑客不能操纵它?
我可以做的一件事是回到页面本身,然后使用<cfinvoke>
来调用CFC并传入参数。我会在调用中而不是在Form中设置参数。这是正确的方法吗?
答案 0 :(得分:4)
恶意用户无法轻易修改的唯一位置是Session
。
将敏感内容保留在Session
中,并确保登录用户有权执行他们请求的操作(例如,只能删除自己的内容,而不是其他内容)
答案 1 :(得分:1)
关于,“我能做的一件事就是提交回页面本身然后用来调用CFC并传入参数。我会在调用中而不是在Form中设置参数。这是正确的吗这样做的方法?“
我认为这比提交cfc要好得多,这就是你说你现在正在做的事情。这个主题的微小变化是:
就不使用隐藏表单字段而言,您可能遇到麻烦。用户信息可以按照Henry的建议存储在会话范围内,但收件人信息更难保护。您可以使收件人ID成为表单字段名称的一部分。然后为了保护自己免受neer做井,在cgi.http_referrer变量上添加另一个检查。