2009-11-09 88 views
5

我正在開發一個應用程序,允許用戶輸入任意網址,該網址將包含在<a href="ARBITRARY URL"><img src="ARBITRARY URL" />標籤中。通過<img>或<a>標籤加載可執行代碼?

我在看什麼類型的安全風險?

該應用程序使用PHP編碼,目前唯一的安全對策是使用PHP的htmlentities()函數針對輸入URL,然後將其作爲HTML發送。我也在檢查以確保URL文本以http://https://開頭,但我不知道這是否完成任何事情,安全明智。

我還應該做些什麼來確保最終用戶的安全?

回答

3

看一看的XSS Checklist

+0

謝謝,我使用CodeIgniter框架,它有一個xss_clean()函數。我在通過xss_clean()傳遞它們之後嘗試了大約一半的示例,並用字符串「[removed]」替換了所有易受攻擊的文本。 – Dolph 2009-11-09 22:15:43

1

此外,可以在較新的瀏覽器中使用將整個圖像插入到URL中。有可能通過那裏注入某些東西,但是這需要一個大的瀏覽器端安全漏洞,我不知道如何消毒。

也許你只是想限制訪問某些域,或檢查圖像是否物理存在?這可能已經有很大幫助。

1

CSRF

<img src="http://example.org/accounts/123/delete" /> 
+0

太棒了。 – Dolph 2009-11-09 22:11:53

0

除了迄今爲止的出色答案之外,xss備忘單並沒有真正考慮像onmouseover onhover等事件屬性。這些都是通過設計來允許某人在出現問題時運行某些javascript。