2012-09-12 33 views
0

我想弄清楚最好的做法,以及最安全的方式来存储一个变量与JavaScript的一个Web应用程序,我正在开发。最安全的方式来存储变量使用javascript

我有使用php,$ _GET和mod_rewrite生成的页面。它们是通过url提供的id生成的。例如:http://example.com/1125/(因为mod_rewrite实际发生的是:http://example.com?id=1125)。 PHP需要$ _GET ['id'],并根据给定的ID从数据库中检索信息,等等。

我遇到的问题是,我在该页面上有一个窗体,用户可以发布一个问题,通过ajax发送。我不知道存储页面的id($ _GET ['id'])的最佳方式。

现在,我将id存储在表单中的一个隐藏输入中(例如:“/>)。当表单提交给服务器并且php看一个$ _POST时,它包含[”当我通过页面中的表单提交问题时,我就是这么发送页面的ID。

我认为这不安全的原因是,任何人都可以编辑html(例如通过Chrome的检查元素),并将隐藏的输入(id)值更改为任何其他ID

所以我的问题是,什么是最安全的方式,我可以存储该id与JavaScript,所以当提交问题表单时,它可以安全发送正确的ID到服务器?或者任何其他采用最佳实践方法思考的建议?

+0

你可以使用来自原始页面的SESSION_数组来传递它。那么你不必将它存储在隐藏的领域。 – Brant

+1

不知道为什么你希望JS在这种情况下存储ID!为什么不让php处理整个过程? – hsalama

+0

我以为已经这样,但是如果有人访问http://example.com/1111/,然后打开另一个标签并转到另一个页面,例如http://example.com/2222/ $ _SESSION id变量将更改为2222,如果它们返回到标识为1111的选项卡并且提交一个问题($ _SESSION ['id']仍将包含2222而不是1111)。 –

回答

0

您只需要验证接收到ajax的php页面中的id,如果id有效并且用户有权使用它,那么它就没关系,如果他通过chrome更改它也没关系或者其他什么,但你需要验证,因为如果他改变了属于其他用户的id,那么你必须在这种情况下检测出错误。

这只是根据您的应用程序中的专家验证您的输入。

+0

我想避免有一个用户谁有权在页面id 1111或page-id 2222上发布问题,通过更改html在页面id 1111上发布id为2222的问题。有道理哈哈? –

相关问题