使用JavaScript防止表单注入?

时间:2013-08-25 03:43:37

标签: php javascript ajax html5 security

我有一个页面,用户必须使用HTML5 Canvas和JavaScript创建自定义的个人资料图片。画布的base64图像数据以其输入其余用户信息的形式存储在隐藏的输入字段元素中。我只希望网站上的人使用我的JavaScript / Canvas设计师制作他们的个人资料图片,但是用户可以进入Chrome控制台,或者使用地址栏或用户脚本来设置隐藏输入字段的内容到他们选择的base-64图像数据(不是用我的画布制作)。

如何阻止人们这样做?我想也许某种使用AJAX将数据发布到PHP文件的方法,该文件设置$ _SESSION数据,但我想不出一种方法可以阻止用户注入javascript来改变参数。

2 个答案:

答案 0 :(得分:1)

在不知道你的环境的情况下,我会猜测。

我假设您正在使用某种允许用户在画布上绘图的库(有效地使其成为mspaint)。假设这是真的,您可以在图像制作过程中记录每个步骤并将其发送到服务器。这现在允许三件事:

  1. 用户最终得到了他们画的图像。
  2. 服务器知道它是合法的,因为它一直在跟随。
  3. 因为如果是子弹2,则不再需要保存的画布结果。

答案 1 :(得分:0)

不要浪费时间试图弄清楚如何依赖客户端来防止这种不必要的用户行为。如果有人想在客户端上做,他们会找到一种方法来做到这一点,它可能不会花费很长时间。如果要防止此用户行为,请在服务器端执行此操作。这可能很容易或不容易,但至少它是可能的。客户端根本不可能。