2012-02-21 89 views
2

Java是否具有安全性的標準功能,如在php htmlspecialcharsstrip_tags?或者我必須寫我自己的功能?我想確保我的腳本安全地處理用戶數據。安全功能

+0

相關:[XSS預防中的Java(http://stackoverflow.com/questions/2658922/xss-prevention-in-java) – BalusC 2012-02-21 18:37:58

回答

3

不完全是。

防止Java中的注入攻擊來自「免費」提供您以某種方式做某事是正確的。例如:

  • 不要通過連接字符串來創建SQL。相反,使用佔位符創建SQL,並使用JDBC PreparedStatement進行編譯/執行。

  • 在JSP中,使用<c:out>輸出來自用戶的任何數據。這自動HTML轉義它來變性任何可能的注入nasties。

+0

我使用你輸入的所有東西,但數據來自用戶的輸入表單。如果我使用PreparedStatement作爲例子,爲了添加記錄到我的數據庫它會檢查我的數據嗎?所以我不需要在我的請求參數中使用這些函數,它來自客戶端? – 2012-02-21 10:46:59

+0

它不檢查數據*本身*。相反,它會導致被視爲單個SQL數據值包含了用戶的輸入參數......不論任何時髦的報價,等等,用戶可能會嘗試在SQL注入攻擊利用的。 – 2012-02-21 11:25:25

-1

這不是一個解決方案,只是一個建議,當它的安全性,我從來沒有使用內置的功能,我經常寫他們自己根據客戶的要求,使用正則表達式,它們對這個非常強大的。

+0

這太麻煩,有沒有一些簡單的方法來做到這一點? – 2012-02-21 10:37:31

+4

這也是一個壞建議,除非你的安全性比其他人好。 (並且*思維*之間存在差異*你比實際*更好*) – 2012-02-21 10:44:53

+0

斯蒂芬,爲什麼這會是一個不好的建議?你的意思是寫自己的功能是一個不好的建議?相比之下,使用內置函數只能看到但不能編輯源代碼? – JBoy 2012-02-24 14:51:43