看板 Ajax 關於我們 聯絡資訊
例如像論壇這樣的環境,發文者或留言者的內容,若是惡意藏有 js 的話,請問要如何防止? 假設內容有 <script> 標籤的話比較簡單,在發文者送出內容之前, 用正規表示式就能偵測到並移除。不過怕是在 html 標籤裡面放事件, 例如: <img src="" onload="執行的 script"/> 這樣就可以偷渡 script 了。不曉得 js 有沒有什麼寫法,可以在送出 內容之前,過濾掉所有的事件語法,或是其他的處理方式呢?謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.31.50 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1438177200.A.F58.html
oToToT: 直接送出去後,在後端做htmlspecialchars之類的就可以了吧 07/29 22:14
MangoTW: 轉成替代字元,他打角括號你就讓他顯示角括號就可以了。 07/29 22:16
這樣不行吧? <img..../> 變成 &lt;img.../&gt; 圖片就不能顯示了...@@"
mmis1000: 如果你想讓他可以輸入某些tag其實也有現成的處理lib可以 07/30 04:24
mmis1000: 幫你'消毒',保留你允許的標籤和屬性 07/30 04:24
※ 編輯: mchen11 (118.165.6.172), 07/30/2015 09:23:18
Peruheru: 你可以自己規範比如說圖片要用 [img]src[/img],自己轉 07/30 09:42
Peruheru: 然後使用上面的encode不允許使用者使用HTML標籤 07/30 09:43
Peruheru: 這樣一來出現的一定都是你允許的內容 07/30 09:44
LPH66: 或者就直接使用已有的類似編碼規範例如 BBCode 等 07/30 17:09
mmis1000: 像這種的,可以白名單你允許用的東西 07/30 18:23
mmis1000: 不過server還是要再跑一次,你不能相信client給的東西 07/30 18:24