我正在为我正在开发的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"]=>1125。当通过页面中的表单提交问题时,我就是这样发送页面id的。
我认为这不安全的原因是,任何人都可以编辑html(例如通过Chrome的inspect元素),并将隐藏输入的(id)值更改为任何其他id。
所以我的问题是,我可以用javascript存储该id的最安全的方式是什么,这样当提交问题表单时,它可以安全地将正确的id发送到服务器?或者用最佳实践方法想出的其他建议?
您只需要在接收ajax的php页面中验证id
,如果id
是有效的,并且用户有权使用它,那么就可以了,他是否通过chrome或其他方式更改了它也没关系,但您需要验证,因为如果他为属于其他用户的id
更改了它,那么您必须检测到它并在这种情况下出错。
这只是根据应用程序中的权限验证输入的问题。