2013-08-25 63 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,則不再需要保存的畫布結果。