使用php和ajax验证表单帖子

使用php和ajax验证表单帖子,php,security,validation,xss,sql-injection,Php,Security,Validation,Xss,Sql Injection,我在Extjs中有一个表单,它通过POST向我的控制器提交数据。提交数据时,用户将在控制器的构造函数中进行身份验证。但是我如何确保用户提交的数据是允许他更改的。例如 蒂姆是用户。 Tim将编辑他的“组描述”。在表单中,我将让他的groupid告诉我的函数要编辑的“组”。如果Tim决定对他的朋友Robbert恶作剧,将groupid更改为Robberts group id并编辑描述,该怎么办 我的问题 我是否必须选择“groupid”及其权限以及用户验证的数据,并进行比较以验证Tim是否是组的所有

我在Extjs中有一个表单,它通过POST向我的控制器提交数据。提交数据时,用户将在控制器的构造函数中进行身份验证。但是我如何确保用户提交的数据是允许他更改的。例如

蒂姆是用户。 Tim将编辑他的“组描述”。在表单中,我将让他的groupid告诉我的函数要编辑的“组”。如果Tim决定对他的朋友Robbert恶作剧,将groupid更改为Robberts group id并编辑描述,该怎么办

我的问题 我是否必须选择“groupid”及其权限以及用户验证的数据,并进行比较以验证Tim是否是组的所有者?我是否需要创建某种类型的POST secrect md5值?他们的方法更简单吗

如果有人将数据从其他服务器发布到我的服务器,该怎么办

我很高兴能上网问一些愚蠢的问题:)谢谢

我是否必须选择“groupid”及其权限以及用户验证的数据,并进行比较以验证Tim是否是组的所有者

是的,这是进行授权检查的正常方式。这并不特别繁重

我是否需要创建某种类型的POST secrect md5值

不是为了授权。当您需要在以后发行授予授权的代币时,您通常会使用某种带有时间戳的HMAC。但是这里不需要这样做,只需检查用户是否有权在请求时执行他们请求的操作


为了防止跨站点请求伪造,您可能确实需要创建某种类型的发布机密,但这将是另一个问题。它通常不会与授权问题进行交互。

只需验证用户是否有权限,无需对秘密值做任何疯狂的操作。啊,好的。最佳实践会要求我重新创建“组”对象并从重新创建的对象进行验证,还是直接在模型中使用查询来验证用户是否可以编辑该对象(“组”)?如何实施授权检查本身并不重要,但一般来说,在执行操作时,以及在决定是否显示指向该操作的链接/按钮/etc时,您都希望重复使用相同的代码来检查权限。否则,最终会出现不一致,从而隐藏了不必要的执行机会。