我已經閱讀了SQL注入,XSS和其他安全問題,並試圖找出如何使用來保護公司的網站。可能危險的文本輸入處理
我們即將有一個textarea部署一個簡單的「用戶反饋」的形式,使用戶可以告訴我們如何改善網站以提高他們的用戶體驗。
當用戶在表單上按'提交'時,我們從用戶處讀取textarea註釋,然後以編程方式在該用戶的子文件夾中創建一個文件名,並將其註釋保存到文件中。然後我們將文件名和路徑添加到該用戶的數據庫記錄。
團隊並不擔心安全問題,但我是。他們的想法是「我們創建文件名,基於任何用戶輸入,它是0%,並且由於我們將這個'UserX註釋'的文件名和路徑寫入數據庫,沒有直接的用戶影響 - 所以沒有風險。」
我關注的不是數據庫活動 - 因爲他們是對的,用戶有什麼,我們寫信給他們的數據庫記錄,因爲我們剛剛創建自己的文件名並將其存儲在自己的數據庫記錄沒有任何作用。
我的問題是文本文件!
所以我上訪我們的小團隊重寫代碼使用安全textarea的文本文件讀取然後寫入用戶的評論。
我擔心的是 - 因爲我們打算實際閱讀我們用戶的反饋並打開這些文本文件以供以後閱讀 - textarea中可能有壞東西(除非我們清理它)會以某種方式傷害我們。
我堅持我們使用strip_tags(),但我需要聽取關於我們清理textarea輸入的方式的消息 - 我在想strip_tags()是這裏的路,但我100%新的消毒用戶輸入。我查看了htmlspecialchars(),但它只是將某些字符(如'&')轉換爲& 等等。
是否有其他方式來santize /安全做出的任何文本的用戶類型爲textarea的我們寫出來給我們的Web服務器上的文件之前?
'htmlspecialchars'也將'<' and '>'轉換爲'<'和'>',這足以防止顯示使用輸入的任意html。 – kirilloid 2012-03-10 03:23:08
我認爲這引發了一個問題:爲什麼你將這些存儲在文本文件而不是數據庫中? – 2012-03-10 03:24:59
上午 - 很好的問題 - 因爲這是一個100%的新功能,我們不知道它將使用多少,所以現在我們不添加代碼和數據庫模塊來處理安全問題等,但如果在部署它變成一個不常使用的功能,然後將它存儲在數據庫中可能會更好。 – wantTheBest 2012-03-10 03:29:18