2015-06-11 12 views
1

在客戶端創建與服務器端表結構匹配的對象是不好的做法嗎?有沒有任何安全問題?客戶端JavaScript表結構不好的做法?

這將用於在保存到服務器之前創建新記錄並存儲在客戶端的數組中。另外用於檢索記錄並從服務器存儲。

例如:

var recordClass = { 
     fields: { 
      col1: { dataType: "int", identity: true }, 
      col2: { dataType: "char", length:50 } 
     } 
    } 
+2

Downvote with no comment?只是問一個問題 – user1777129

+1

沒有downvote,但你應該在問之前閱讀http://stackoverflow.com/help/how-to-ask;這個問題相當廣泛,很可能會導致基於意見的答案,這兩個問題都將被封閉。 –

+0

好的,謝謝@TimLewis – user1777129

回答

1

問題有些寬泛,但我還是給你我的答案。一些程序員會說公開發布與你的數據庫相關的任何東西是危險的。這將包括結構,用戶名,錯誤消息。

就我個人而言,我認爲你應該把事情放在角度。如果黑客有權訪問數據庫結構,那麼他會更容易理解如何處理數據庫中可用的數據。 但是,數據庫結構本身不足以讓他訪問你的數據。如果你已經確保你的密碼,並且你已經設法防止任何sql注入風險,並且其他所有可能允許在你的數據庫上執行不需要的腳本的缺陷,那麼在公共業務層中使用你的結構應該是安全的。我還建議防止錯誤消息直接發送回瀏覽器,因爲它可能會提供大量信息,可能會爲您的數據庫創建漏洞利用。

P.S.許多數據服務已經在使用沒有別名的表名和結構。服務定義有時會公開。

+0

謝謝你的迴應。我發現這種方法使得創建可重用的JavaScript組件變得更容易。我剛在想。從httpRequest創建這些對象是否合理?儘管如此,這些信息仍然可以在響應身體中看到。任何想法@The_Black_Smurf? – user1777129

+0

從安全角度來看,從javascript文件或httpRequest獲得結構是一樣的。從httpRequest創建對象確實很有意義,因爲它更具動態性。但是,如果您更改結構,則必須確保您的JavaScript仍能夠處理您的對象。 –