close

最近工作有遇到一個資訊安全的漏洞
有個參數並沒有做安全上的處理,這可以使用跨網站腳本攻擊(XSS),至於SQL injection有沒有做處理就不知道(有段code看不到)
我以前工作處理這兩種資訊安全的漏洞時,XSS是在頁面顯示資料時對文字做處理(例如使用特殊編碼顯示),SQL injection則是用參數方式執行SQL而非直接組字串
概念上是這樣,實際上能否實現就是看當時使用的技術來決定怎麼做

公司採用的是另一種做法,在把參數存資料庫的時候,把一些特殊字元給拿掉。我當初最早的處理方向也是改資料的內容,那時是用filter來做處理,後來不這樣用的原因有幾項
1.使用後系統執行就出問題了(看來本來正常邏輯就是會使用特殊符號)
2.網路上有文章說可以使用編碼方式不直接使用特殊符號攻擊
3.改使用者輸入的資料真的好嗎???

我不太認同公司使用的那種做法,主要原因在於這可能會讓使用者覺得「我輸入的資料怎麼給我改掉了,那我真的想用一些特殊符號怎麼辦???」。
只是公司的情況有些特殊,而且我也還無法完全掌握系統架構(很龐大也很複雜>"<)
我的建議可能需要做的調整會很大,要調整的範圍有:
1.所以輸出資料庫資料的頁面都須調整(防XSS)
2.所有把頁面資料寫入資料庫的程式語法都要調整(防SQL INJECTION)

我認為我在此文一開始提的處理方式是對的,只是公司情況比較特殊。我判斷公司的情況無法做這樣的處理,細節原因就不在此多說了。

arrow
arrow
    全站熱搜

    tomwangkniht 發表在 痞客邦 留言(0) 人氣()