2011-03-17 187 views
0

我有一個註冊表格。我需要通過Ajax Post(mootools)將它發送到php文件。 發佈表單的最佳和安全方式是什麼?許多thx表格提交Mootools

回答

2

這可能是一個簡短的話題或長話題,這取決於你的意思是'安全'?你在這裏擔心什麼?

看一看這個簡單的例子: http://jsfiddle.net/dimitar/tr74c/

基本上,規則是不信任的客戶端。永遠。這個例子運行在一個閉包(很難穿透)中,通過輸入並去掉任何可能導致注入的腳本,如果稍後輸出結果的話。然後它提交給服務器並輸出東西回來玩。

你不應該相信的是,在stripScripts() PHP已經工作,也strip_tags,你通過一個用戶應用的任何其它安全措施,以數據,如mysql_real_escape_string

這在domready中塊。

(function() { 
    var form = document.id("register"), els = form.getElements("input.required"), result = document.id("result"); 

    form.addEvent("submit", function(e) { 
     e.stop(); 

     var errors = false; 
     // clean inputs from cross site scripting and some basic validation, put yours in. 
     els.each(function(el) { 
      var value = el.get("value").stripScripts(); 
      if (value.length < 3) // example min 3 length 
       errors = true; 

      el.set("value", value); 
     }); 

     if (!errors) { 
      // set jsfiddle html. 
      document.id("html").set("value", "Submited safe data was: User: " + document.id("login").get("value") + ", pass: " + document.id("pass").get("value")); 
      new Request({ 
       url: this.get("action"), 
       data: this, 
       onComplete: function() { 
        result.set("html", this.response.text); 
       } 
      }).send(); 
     } 
     else { 
      alert("fill in all required fields with at least 3 chars"); 
     } 
    }); 
})(); 

請記住,HTML var是jsfiddle模擬ajax輸出,並非真正需要在生產中。