2013-08-25 36 views
0

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

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

+1

没有办法避免这个客户端。你只能在服务器端处理它。 – Brad

回答

0

不要浪费你的时间,试图找出如何依靠客户端来防止这种不需要的用户行为。如果有人想要在客户端做到这一点,他们会找出办法做到这一点,而且这可能不会花费很长时间。如果要防止此用户行为,请在服务器端执行此操作。这可能很简单,但至少可以。这根本不可能在客户端。

+1

我明白这一点。如何做这个serverside的例子可能? – user2712640

1

不知道你的环境流利我会猜测。

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

  1. 用户结束了他们画的图像。
  2. 服务器知道它是合法的,因为它一直在跟随。
  3. 因为如果项目符号为2,则不再需要保存的画布结果。