5
即時通訊使用jQuery Markitup允許用戶輸入HTML ...所以他們可以輸入的東西,如:如何轉義html?
<h1>Foo</h1>
<p>Foobar</p>
不過,我在看http://railscasts.com/episodes/204-xss-protection-in-rails-3,並決定將這段代碼試圖進入輸入:
<script>alert('test');</script>
令我驚訝的是,當我提交表單並刷新頁面時,警告框出來了。這是一個安全風險!
這是我在我的觀點:以上
<div><%= comment.description.html_safe %></div>
呈現任何HTML,但也容易產生XSS。所以我試過了:
<div><%= html_safe(comment.description).html_safe %></div>
但是上面沒有呈現任何html。它實際上顯示HTML爲文本,這不是所需的行爲。
我需要呈現html,同時保護自己免受xss攻擊。我如何去做這件事?
的sanitize啊呈現HTML,不執行從JS警報。有趣。但是這有什麼影響?我正在觀看http://railscasts.com/episodes/27-cross-site-scripting,Ryan B提到它「不夠徹底,因爲它不能逃避每個html標籤,這不太安全」。 .. –