Javascript 保护accountsystem不受外部变化的影响

Javascript 保护accountsystem不受外部变化的影响,javascript,php,mysql,node.js,Javascript,Php,Mysql,Node.js,我刚刚用HTML5、PHP和Node.js开始了我自己的小项目。 目前一切都按照我的要求进行。但是在检查代码后,我想到了一些事情。我的网站应该是一家拍卖行。我将用户id存储在数据库中,并将该id作为网站上的id标签 问题就在这里。如果现在有人出价,我只需获取id并将其发送到node.js服务器即可。从技术上讲,有人可以将此id更改为另一个注册人的id。目前我还没有真正解决这个问题的办法,因为这是我的第一个网站 我考虑过在用户每次登录时将phpsessionid cookie插入到用户数据库中,然

我刚刚用HTML5、PHP和Node.js开始了我自己的小项目。 目前一切都按照我的要求进行。但是在检查代码后,我想到了一些事情。我的网站应该是一家拍卖行。我将用户id存储在数据库中,并将该id作为网站上的id标签


问题就在这里。如果现在有人出价,我只需获取id并将其发送到node.js服务器即可。从技术上讲,有人可以将此id更改为另一个注册人的id。目前我还没有真正解决这个问题的办法,因为这是我的第一个网站

我考虑过在用户每次登录时将phpsessionid cookie插入到用户数据库中,然后在用户每次对某个项目出价时将这些cookie和用户id一起发送到数据库中。然后node.js服务器会将存储值与发送值进行比较,以验证是否是正确的用户发送了出价。 我现在的问题是,这是一个好的解决方案还是有更好的方法

编辑: 部分代码:

<li class='dropdown' id='steam' title='".$steamprofile['avatarmedium']."' name='".$steamprofile['steamid']."'><a href='#'class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' style='padding-top:0px;padding-bottom:0px;line-height:50px'><img src='".$steamprofile['avatar'].">'><span class='caret'></span></a><ul id='profilenav' class='dropdown-menu'><li><a href='?logout'>Logout</a></li></ul></li>;

这就是我获取用户ID并将其发送到node.js服务器的方式

为什么以及如何一起使用PHP和node.js?为什么同时使用PHP和NodeJS?有两个后端似乎没有必要复杂,尤其是在你的第一个应用程序中。您可以在登录时发布一个保存用户id的令牌,如果您试图篡改JWT中的数据,它将无效,因此您可以将令牌传递给NodeJS,而不是自己传递用户id。我只使用php从数据库中获取项目,因此我可以使用jquery在我的站点上显示它们。当用户登录时,我也使用php。所以他们实际上并不在一起工作。我使用node.js进行投标。我以前也使用php来实现这一点,但后来我意识到对服务器的调用太多了,我想不出每次有人出价时都发送当前价格/所有者的方法。所以我不得不切换到node.js和socket.io“从技术上讲,有人可以将这个id更改为另一个注册的人的id”,这永远不会发生。如果您需要更改该id,只需删除他的出价并添加其他id。用户永远不应该更改id(除非在一对多关系中,房子一次只能由一个人出价),您当时确实应该询问。这似乎不太可能是电话太多,更新价格也可以通过间隔轮询解决。如果所有这些都失败了,那么为什么以及如何一起使用PHP和Node.js?为什么同时使用PHP和NodeJS?有两个后端似乎没有必要复杂,尤其是在你的第一个应用程序中。您可以在登录时发布一个保存用户id的令牌,如果您试图篡改JWT中的数据,它将无效,因此您可以将令牌传递给NodeJS,而不是自己传递用户id。我只使用php从数据库中获取项目,因此我可以使用jquery在我的站点上显示它们。当用户登录时,我也使用php。所以他们实际上并不在一起工作。我使用node.js进行投标。我以前也使用php来实现这一点,但后来我意识到对服务器的调用太多了,我想不出每次有人出价时都发送当前价格/所有者的方法。所以我不得不切换到node.js和socket.io“从技术上讲,有人可以将这个id更改为另一个注册的人的id”,这永远不会发生。如果您需要更改该id,只需删除他的出价并添加其他id。用户永远不应该更改id(除非在一对多关系中,房子一次只能由一个人出价),您当时确实应该询问。这似乎不太可能是电话太多,更新价格也可以通过间隔轮询解决。如果其他一切都失败了
var steamid=document.getElementById("steam").getAttribute("name"); 
socket.emit('status added',{itemid:id, tmerid:timerid, steamid: steamid, avatar: avatarlink});