與任何用戶提供的數據一樣,這些URL需要進行轉義和適當過濾以避免各種漏洞利用。我希望能夠如何安全地將用戶提供的URL添加到我的HTML頁面?
放置用戶提供的網址,在
href
屬性。 (獎勵積分,如果,如果我忘了寫引號我沒有得到擰)<a href="ESCAPED_USER_URL_GOES_HERE">...</a>
禁止惡意URL如
javascript:
東西或鏈接到邪惡的域名。爲用戶提供一些迴旋餘地。我不想因爲忘記添加
http://
或類似的東西而引發錯誤。
不幸的是,我無法找到任何「規範」解決這類問題。我唯一能找到靈感的地方是來自Javascript的encodeURI
函數,但這對我的第二點沒有幫助,因爲它只是做一個簡單的URL參數編碼,但只留下特殊字符,如:
和/
。
什麼是「邪惡的域名」?如何將任何?代碼邏輯可以告訴一個邪惡和良好之一,也是......你說你想要把用戶提供的URL之間的差異,但禁止「三通」是什麼意思,甚至 – eis 2013-02-11 07:05:15
@eis:我對於濫用,這種說法含糊不清,例如,「邪惡」可能會有一些來自黑名單的東西。重要的是我希望能夠分析URL(例如,使用encodeURI不會這樣做)。至於「鏈接」部分,那只是一個錯字。 – hugomg 2013-02-11 13:36:02