所以,我使用Vue.js
並希望顯示一些包含鏈接的文本。文本由用戶輸入。顯示鏈接爲<a>標籤,但不允許其他標籤?
例子:
這是一個網站www.example.com比www.oldexample.com
我希望它出現更好的爲:
這是一個網站www.example.com這比www.oldexample.com更好
所以,我想鏈接超鏈接。問題是這是用戶輸入,所以它必須被XSS保護。我目前將其顯示爲文本,因此我無法在其中使用HTML標記。如果我要使用v-html
並將所有鏈接包含在a
標記中,那麼用戶可能會輸入任何HTML
會太不安全。
我在考慮按URL拆分字符串,並將每個不是span
標記中的鏈接的部分以及a
標記中的每個鏈接都包裹起來。但是,這只是爲了超鏈接URL而完成的。
是否有更簡單的方法,即XSS安全(用戶不能輸入除<a>
以外的其他標籤)?
檢查:http://stackoverflow.com/questions/1500260/detect-urls-in-text-with -javascript –
您是否試圖用用戶輸入的文本替換用戶輸入的文本,還是放在頁面的其他位置?就地替換有點棘手,您可能需要一個庫,可以標記輸入以支持退格刪除超鏈接等事情(想想Word/Outlook如何通過文本中的超鏈接執行此操作)。通過XSS保護你的意思是用戶可能輸入鏈接文本,如www.gmail.com,其實際上有www.steal-my-password.io? –
這不是就地。我有一個評論部分,我想讓鏈接可點擊。 – Cristy