2
我有一個RESTful API,可以返回JSON
和XML
。XSS應該保護我API的迴應嗎?
例如說請求是針對諸如文檔之類的工件的所有評論:GET /document/DOCUMENT_ID/comments.json
。回覆如下所示:
[
{
"created_time": 1304598075,
"text": "<script type=\"text/javascript\">alert(document.cookie)</script>",
"user_id": 2293,
"id": 184124
},
{
"created_time": 1304598043,
"text": "It's over ninethousaaaaaanddd!!!",
"user_id": 2293,
"id": 184122
}
]
在我自己的服務中,第一條評論將在提交之前被XSS轉義。但是,當通過API訪問時,我不得不信任API的實現者來進行轉義。
如果API是在通過瀏覽器呈現的Web服務中實現的,那麼攻擊矢量是相當真實的。另一方面,如果API是在桌面應用程序或移動應用程序中實現的--XSS轉義將是一種總體滋擾並且不需要。
我應該逃避通過API返回的所有字符串嗎?或者我應該實施一個設置,以便在註冊第三方應用程序時,API實現者可以指定他是否想要轉義回覆?
瞭解其他人如何處理此問題會很有趣。
好的,現在確實是一個很好的理由。爲那些想要它的實現者提供選項,是否仍然是一個好主意?作爲一種選擇性的東西? – 2011-05-06 08:22:33
@John,我個人不會,它是webservice(或REST API)提供數據的工作,而不是將其格式化以供顯示。周圍有足夠多的反XSS庫,無論用戶界面採取什麼形式,都不應該成爲逃避文本輸出的問題。 – slugster 2011-05-06 08:40:20