2014-10-09 20 views
1

這比編程更關心安全性,但我會在這裏發佈它。將不同類型的腳本標籤解釋爲JS?

一種標記分析器呈現一個數學塊爲:

<script type="math/tex"> 

    % tex code here 

</script> 

的客戶端側的庫(又名MathJax)然後檢測這些<script>標籤和把它們變成數學。

我的問題是:在清理HTML時,可以允許<script type="tex/math">標記嗎?
瀏覽器是否有可能插入JavaScript這樣的標籤(啓用XSS)?

+1

是的。不。瀏覽器只會解析腳本標記,如果它沒有類型,或者類型是JavaScript,無論是'text/javascript'還是'application/javascript'。我不會使用任何以'/ javascript'結束安全性的事情,但是'math/tex'完全可以。 – 2014-10-09 20:30:13

+0

或'/ ecmascript' ...'math/tex'雖然可以。 – 2014-10-09 20:40:56

+0

小心消毒HTML - 如果處理不當,這可能是雷區。通常你會編碼字符,這意味着''script type =「math/tex」>'將被編碼爲'< script type = " math/tex " >'所以我的問題是你如何清理HTML? – SilverlightFox 2014-10-13 09:30:07

回答

0

這應該是安全的。這取決於如何讓允許這些標籤通過,而HTML編碼其他所有內容。

還要小心腳本標記中的任何用戶控制內容。

例如如果用戶可以設置% tex code here喜歡的東西

</script> 
<script> 
alert('xssed') 

那麼下面將呈現:

<script type="math/tex"> 

    </script> 
    <script> 
    alert('xssed') 

</script> 

,然後JavaScript的將被執行。

+0

用戶可以在這裏設置'%tex代碼'爲任何他想要的東西,只要它不包含任何字符串的出現。 – 2014-10-15 20:49:16

相關問題