2010-12-22 96 views
1

我一直在使用jQuery的$ .ajax/$。post來提交一些表單數據。我正在考慮在我的登錄表單中使用此方法來創建電子商務網站。我的問題是通過AJAX post發送的數據有多安全?對我來說,至少似乎有人可能會看到一些細節,以幫助他們通過jQuery腳本自己去做令人討厭的事情。我需要隱藏這些東西嗎?還是我錯了,這種發送數據的方法與其頁面加載對應方一樣安全(請記住,這兩種方法都是通過256位安全連接)?AJAX提交表單的安全性?

+1

'不要假設'爲了保持數據的完整性,確保你總是不信任任何d ata被後臺收到。 – RabidFire 2010-12-22 08:46:36

回答

1

與從瀏覽器發送數據到服務器的其他方法相比,它沒有那麼安全。

有人能看到可能的一些細節,以幫助他們通過jQuery的腳本做壞事自己

給定一個規則的形狀,有人可以添加自己喜歡的頁面的任何腳本。

只記得build on things that work,你不希望銷售失敗,因爲一塊JS未能加載。

1

提交沒有區別,兩種方式都可能不安全。由服務器端來解決任何問題。

0

無論提交表單數據的方式如何,您都必須按照inaré的說明檢查服務器端表單的安全性。 如果你想要一個概念proff在Firefox上使用'Live HTTP Headers',捕獲你的POST查詢並重播它,你可以改變每個發佈的數據(並添加一個)。 在服務器端你shoudl申請2通安全對submited DATAS:

  • 過濾
  • 驗證

過濾將確保傳遞給驗證數據可能被重複使用(如在已設定值你的表單元素或錯誤消息中的句子,因此對於整數來說,一個簡單的(int)強制轉換將完成這項工作,但對於文本來說,你必須過濾XSS,HTML注入,js注入等。這可能是一件好事減少到最大的siez文本元素在這個過程中。 然後驗證將確保發佈表單元素包含有效值(正確的日期,正確範圍內的int,有效的select元素等)。您可以重複使用POSTED值,該值現在被過濾以回顯「-15不是有效數量」這樣的好消息。

在Zend Framework Zend_Form中完成了一項很好的表單處理工作,概念可以重用。

0

無論在何處的數據來自的,你必須消毒,然後..仍然確保它看起來合理,你折騰到一些查詢之前。

爲ID的我用ctype_digit( )和strlen()在被過濾之後