我知道,爲了防止XSS,我們需要具備情境感知能力。以正確的方式預防XSS
當我們做echo $ userinput;我們需要意識到這樣的事實,即如果輸入進入文本框值,或文本區域值或劃分html區域等等。
我想簡化回聲業務,以便我可以使用單個函數來滿足大部分回聲需求。考慮到這一點,我將以下功能放在一起,但我不確定,如果依靠它是一個好主意。
當然,我做了一些假設。 這就是我總是使用內置的urlencode for urls。我虔誠地界定以'或屬性」。
考慮到這一點,我可以使用下面的safeecho,而不是普通的回聲,以防止XSS?
function safeecho($str)
{
return htmlentities($str, ENT_QUOTES, "UTF-8");
}
有一兩件事我不知道是<Style>
上下文我見過人們談論樣式表的「表達式」問題,但我不確定這是怎麼處理的,但是因爲我不打算在樣式表中輸出userinput,或者javascript ,我並不擔心這些事情!當我發現自己需要在js區域或樣式表中輸出userinput時,我不會使用這個函數,但我仍然對你的意見感興趣,以便如何處理這些情況也是如此再次,我是主要是擔心的是常見的東西,即HTML和表單對象。
底線問題是強迫utf8和ent_quotes,我安全嗎?
你不應該在這裏使用Javascript標籤嗎? – tchrist 2012-03-24 21:33:20
@tchrist我不確定你是什麼意思的「在這裏」? – 2012-03-24 21:35:42