以这种方式存储潜在的有害用户输入是否安全:
var rootDiv = document.createElement("div");
rootDiv.setAttribute("data-userid", userId);
userId
来自服务器。
更新
抱歉,我觉得我有点不清楚.. userId
来自服务器,但另一位用户以前发过它。
更新2 但有害的,我的意思是对用户来说,就像恶意脚本一样。
答案 0 :(得分:1)
关于该代码的任何内容都不安全。
任何风险都来自于您首先填充userId
变量的方式,或者您在阅读data-userid
后对数据执行的操作。
答案 1 :(得分:0)
是的,您的代码很好,只要它保持在客户端。用户可以更改他们想要的任何内容,所有更改都只在他们身边,只要您正确验证,任何其他人都不会看到它。如果Javascript然后破坏或搞砸了,那对他们来说太糟糕了,因为只有他们会经历它。
只要您不在服务器端使用相同的信息,您就可以了。即使您对此进行检查,它们也可以改变它,因为它是客户端。它们可以摧毁更多,更容易它们(这就是为什么你总是检查服务器端) 如果该值应为ID,则服务器应该已经检查过它是否为ID,甚至将其保存到数据库中。
编辑后编辑:假设您已经确定此数据是安全的(因为它已经存在),这些数据来自您的服务器的事实根本不重要服务器端。)
答案 2 :(得分:0)
没有害处。好吧,如果它在前端,无论如何不能在你的手中保护它。最好在根据用户ID处理更多请求时进行服务器端验证。
简而言之,在处理请求时检查服务器上是否收到相同的ID。