2012-03-24 115 views
4

對於html = '<b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg" />'和類似的輸入,包括JavaScript,會是這樣的(Sanitize.clean(@post.content) # => 'foo')涵蓋所有的基礎,以防止用戶注入JavaScript和HTML到數據庫中?Sinatra應用程序中的XSS保護

我應該採取額外措施來清理用戶輸入嗎?

+0

爲什麼會你阻止用戶輸入HTML和JS到數據庫?我寧願防止原始顯示這些內容。像http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#escaping_html – 2012-03-24 05:52:39

+0

感謝您的迴應。沒有HAML的情況下,這將如何在HTML中完成?我對這種方法有一個全面的關注。如果我阻止html&js顯示原始數據,那麼首先允許它保存到數據庫的目的是什麼?我寧願不允許數據保存以避免在我的UI中渲染醜陋的html/js標籤。 – Dru 2012-03-24 06:40:19

+0

HTML只是一種可能的演示文稿,應該與您的內容分開。如果用戶想要輸入字符''',我不認爲你應該在保存到數據庫之前進行變換。相反,您應該依賴您的框架(或模板庫,無論如何),在將內容呈現爲HTML之前準備好內容。那麼,你寫什麼Sinatra的意見? – 2012-03-24 14:26:58

回答