我有一個網站,用戶可以分享一個鏈接到他們的主頁,如http://example.com/user
。目前,我正在使用PHP函數filter_var($_POST['url'], FILTER_VALIDATE_URL)
在使用預準備語句將其添加到數據庫之前驗證URL。如何在PHP中正確處理URL鏈接?
但是,我意識到PHP過濾器函數接受可用於跨站點腳本的輸入,如http://example.com/<script>alert('XSS');</script>
。爲了解決這個問題,我在標籤的<a>
標籤內使用htmlspecialchars
,在標籤的href
屬性上使用rawurlencode
。
但rawurlencode
導致URL中的/
轉換爲%2f
,這使URL無法識別。我正在考慮爲所有%2f
做一個preg_replace
回到/
。這是消除URL顯示爲鏈接的方式嗎?
你有沒有考慮strip_tags()? – Robert 2013-05-09 12:37:07
@RobertPodwika,感謝您的建議。我會仔細看看的。 – 2013-05-09 12:40:18