2010-11-04 95 views
2

儘管我偏執狂,但我從來沒有真正瞭解更多的網絡安全問題,所以我缺乏知識導致我對此有點困惑。JavaScript非持久性安全問題

例如:假設您有兩個文本框,都是供用戶輸入的。

用戶輸入他們想要的任何內容到這兩個文本框中,然後單擊一個按鈕,然後按鈕使用一些JavaScript並連接這兩個文本框中的任何內容並將其顯示在div中。

我的問題是,在這種情況下,因爲它使用的JavaScript客戶端,你需要真正消毒用戶輸入?

如果輸出到文本框而不是div,會怎麼樣?或者作爲一個警報?

我知道,當涉及到forms/PHP時,您總是希望清理輸入,但我並不十分熟悉JavaScript安全防範措施。我的理解是,由於這是客戶端,並且沒有數據被服務器保存,無論用戶做了什麼(試圖拋出一些惡意代碼或什麼)都不會影響除該用戶之外的任何人,正確?

回答

3

不,這不是一個安全問題。原因是因爲攻擊者必須迫使受害者的瀏覽器執行此操作才能使其成爲XSS。

但是,如果您從document.location之類獲取輸入,然後使用document.write()將其打印到頁面,則這是DOM based XSS。但這是非常罕見的XSS形式。

+0

謝謝。我想了很多,只是想確保沒有一些瘋狂的方式來結束安全風險。 – DaiYoukai 2010-11-05 02:28:12

+0

@Archonix安全性是一個非常困難的計算問題。 SO上有一些非常聰明的人,但一定要測試你的安全系統並做你自己的研究。我看到一些非常不安全的答案被接受。 – rook 2010-11-05 03:27:26

2

您不必清理任何不會去服務器的東西。

如果人們想對他們的頁面實例做些什麼,他們唯一能夠傷害的就是他們自己。看看像GreaseMonkey這樣的擴展可以做的所有事情......我們談論的不僅僅是連接字符串並顯示它們。